38. Count and Say
Question:
The count-and-say sequence is a sequence of digit strings defined by the recursive formula:
Given a positive integer n, return the n^th term of the count-and-say sequence.
Example:
Input: n = 1
Output: "1"
Explanation: This is the base case.
Input: n = 4
Output: "1211"
Explanation:
countAndSay(1) = "1"
countAndSay(2) = say "1" = one 1 = "11"
countAndSay(3) = say "11" = two 1's = "21"
countAndSay(4) = say "21" = one 2 + one 1 = "12" + "11" = "1211"
Source code
Version 1
Idea:
It is a sticky problem for me, my methods always got Time Limit Exceeded. I had no choice but to refer to Huahua's Tech Road.
Declare a string consists 1 character, if n = 1, return a string. record as a index, it starts from 0. We must check res[record] != res[j], use j - count we can get number of the same characters. Finally, use temporary string to store the results.
1 | class Solution { |