본문 바로가기
LeetCode/Top Interview Q. - Easy

LeetCode. Count and Say [String]

by 벤진[Benzene] 2020. 6. 3.

Problem:

The count-and-say sequence is the sequence of integers with the first five terms as following:

1. 1

2. 11

3. 21

4. 1211

5. 111221

 

1 is read off as "one 1" or 11.
11 is read off as "two 1s" or 21.
21 is read off as "one 2, then one 1" or 1211.

 

Given an integer n where 1 ≤ n ≤ 30, generate the nth term of the count-and-say sequence. You can do so recursively, in other words from the previous member read off the digits, counting the number of digits in groups of the same digit.

Note: Each term of the sequence of integers will be represented as a string.

 

Example 1:

Input: 1

Output: "1"

Explanation: This is the base case.

 

Example 2:

Input: 4

Output: "1211"

Explanation: For n = 3 the term was "21" in which we have two groups "2" and "1", "2" can be read as "12" which means frequency = 1 and value = 2, the same way "1" is read as "11", so the answer is the concatenation of "12" and "11" which is "1211".

 

-Summary-

1. Keep track of the first character and count consecutive occurrences.

2. If we encounter a new character, we add the previous character and count. Then update the new character and count again.

이번 문제는 Leetcode의 discussion의 도움을 받아 풀었다. 처음에 어떻게 풀어야 할지 감이 안왔었는데, discussion의 도움과 테스트를 하다보니 조금씩 익숙해졌다. 

 

모든 문제에 대한 저작권은 LeetCode 회사에 있습니다. [Copyright © 2020 LeetCode]

댓글