The count-and-say sequence is the sequence of integers beginning as follows:
1, 11, 21, 1211, 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
, generate the n
th sequence.
Example
Given n = 5
, return "111221"
.
Note
The sequence of integers will be represented as a string.
思路也很直接,但是写的时候要注意数组index越界一类的问题
public class Solution { /** * @param n the nth * @return the nth sequence */ public String countAndSay(int n) { // Write your code here if(n < 1) return null; if(n == 1) return "1"; String prev = "1"; String next = ""; for(int i = 2; i <= n; i++){ char[] temp = prev.toCharArray(); int index = 0; while(index < temp.length){ int count = 0; count++; index++; while(index < temp.length && temp[index] == temp[index - 1]){ count++; index++; } next = next + String.valueOf(count) + temp[index - 1]; } prev = next; next = ""; } return prev; } }
时间: 2024-10-20 10:30:55