您的位置:首页 > 其它

[leetcode]Count and Say

2014-10-28 20:25 381 查看
问题描述:

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.

代码:

public class Count_and_Say {  //java

public String countAndSay(int n) {
if(n < 1) return "";
if(n == 1) return "1";

String result = "1";
for(int i = 2; i <=n; i++){
result = generateStr(result);
}
return result;
}

public String generateStr(String s){
String tmp = "";
int count = 1;
char ch = s.charAt(0);
for(int i = 1; i<s.length(); i++){
if(ch == s.charAt(i))
count++;
else{
tmp += count +""+ ch;
count = 1;
ch = s.charAt(i);
}
}
tmp += count + "" +ch;  // can't ignore the "";
return tmp;
}

public static void main(String [] args){
Count_and_Say cas = new Count_and_Say();
System.out.println(cas.countAndSay(4));

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: