【leetcode】第38题 Count and Say 题目+解析+代码
2017-08-20 11:36
519 查看
【题目】
The count-and-say sequence is the sequence of integers with the first five terms as following:
Given an integer n, generate the nth term of the count-and-say sequence.
Note: Each term of the sequence of integers will be represented as a string.
Example 1:
Example 2:
【解析】
n=2是把n=1读出来,n=3是把n=2读出来,n=4是把n=3读出来……m个x读作mx。
这里用的StringBuilder,原因见上一篇文章。
【代码】
class Solution {
public String countAndSay(int n) {
String str="1";
for(int i=1;i<n;i++)
{
str=countAnd(str);
}
return str;
}
public String countAnd(String str){
char m=str.charAt(0);
int count=0;
StringBuilder st=new StringBuilder("");
for(int i=0;i<str.length();i++)
{
if(str.charAt(i)==m){
count++;
}
else{
st.append(count).append(m);
m=str.charAt(i);
count=1;
}
}
st.append(count).append(m);
return st.toString();
}
}
The count-and-say sequence is the sequence of integers with the first five terms as following:
1. 1 2. 11 3. 21 4. 1211 5. 111221
1is read off as
"one 1"or
11.
11is read off as
"two 1s"or
21.
21is read off as
"one 2, then
one 1"or
1211.
Given an integer n, generate the nth term of the count-and-say sequence.
Note: Each term of the sequence of integers will be represented as a string.
Example 1:
Input: 1 Output: "1"
Example 2:
Input: 4 Output: "1211"
【解析】
n=2是把n=1读出来,n=3是把n=2读出来,n=4是把n=3读出来……m个x读作mx。
这里用的StringBuilder,原因见上一篇文章。
【代码】
class Solution {
public String countAndSay(int n) {
String str="1";
for(int i=1;i<n;i++)
{
str=countAnd(str);
}
return str;
}
public String countAnd(String str){
char m=str.charAt(0);
int count=0;
StringBuilder st=new StringBuilder("");
for(int i=0;i<str.length();i++)
{
if(str.charAt(i)==m){
count++;
}
else{
st.append(count).append(m);
m=str.charAt(i);
count=1;
}
}
st.append(count).append(m);
return st.toString();
}
}
相关文章推荐
- leetcode第38题-Count and Say
- LeetCode题目9 Count and Say
- leetcode 第38题:Count and Say
- leetcode做题总结,题目Count and Say 2012/03/05
- LeetCode Online Judge 题目C# 练习 - Count and Say
- [Leetcode] Count and Say
- leetcode:Count and Say
- 【Leetcode】Count and Say
- [leetcode][string] Count and Say
- [leetcode] Count and Say
- LeetCode: Search Insert Position, Count and Say, Maximum Subarray, Length of Last Word
- 38.[Leetcode]Count and Say
- LeetCode之Count and Say
- LeetCode-38-Count and Say(String/递归)-Easy
- LeetCode 38 Count and Say
- leetcode题目例题解析(十二)
- 《leetCode》:Count and Say
- leetcode题目例题解析(十)
- 37 leetcode - Count and Say
- leetcode 38:Count and Say