您的位置:首页 > 其它

LeetCode——Count and Say

2014-11-12 18:25 225 查看
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.

Note: The sequence of integers will be represented as a string。

原题链接:https://oj.leetcode.com/problems/count-and-say/

可以看出,后一个数字是前个数字的读法,21读作1个2,先写下12,1个1,再写下11,连起来1211.

public static String countAndSay(int n) {
if(n <= 0)
return null;
String str = "1";
int count = 1;
for(int i=0;i<n-1;i++){
StringBuilder builder = new StringBuilder();
for(int j=0;j<str.length();j++){
if(j<str.length()-1 && str.charAt(j)==str.charAt(j+1))
count++;
else{
builder.append(count + "" + str.charAt(j));
count = 1;
}
}
str = builder.toString();
}
return str;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode