您的位置:首页 > 编程语言 > Java开发

(java)Count and Say

2015-12-29 09:28 597 查看
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.

思路:写一个函数,可以产生下一个sequence的过程.设置一个count=1,while循环中判断连续相同字符的个数。当到不相同时,ans=ans+count+str.charAt(i-1);并将count重新设置为1,循环结束是别忘了ans=ans+count+str.charAt(i-1);然后在主函数里调用n-1次次函数就可以得出结果了.

代码如下(已通过leetcode)

public class Solution {

public String countAndSay(int n) {

if(n==1) return ""+1;

String temp=""+1;

for(int i=2;i<=n;i++) {

temp=getit(temp);

}

return temp;

}

public String getit(String str) {

String ans="";

int count=1;

int i=1;

while(i<str.length()) {

if(str.charAt(i)==str.charAt(i-1)) {

count++;

}

else {

ans=ans+count+str.charAt(i-1);

count=1;

}

i++;

}

ans=ans+count+str.charAt(i-1);

return ans;

}

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