Count and Say
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 nth sequence.
解题思路:
英语不行就是惨,看了别人的解释终于弄懂了这是啥意思。
输入n = 1 的时候就输出"1"
输入n = 2 的时候因为之前输出的是“1”,有一个1,所以就输出“11”,表示1个1。
输入n = 3 的时候之前输出的是"11",有2个1,所以就输出"21",表示2个1。
输入n = 4 的时候之前输出的是"21",有1个2,1个1,所以就输出“1211”,表示1个2,1个1。
所以n = 5 的时候输出的是“111221”。
以此类推...
这个比较明显就是用递归的做法来完成了,细节没啥好说的直接上代码。
public class Solution {
public String countAndSay(int n)
{
if(n == 1)
return "1";
else
{
String str = countAndSay(n-1);
String result = "";
char num = str.charAt(0);
int index = 1;
int count = 1;
while(index < str.length())
{
if(str.charAt(index) == num)
count ++;
else
{
result += Integer.toString(count) + num;
num = str.charAt(index);
count = 1;
}
index ++;
}
result += Integer.toString(count) + num;
return result;
}
}
}