lintcode-easy-Count and Say
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lintcode-easy-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 n
th sequence.
Given n = 5
, return "111221"
.
The sequence of integers will be represented as a string.
思路也很直接,但是写的时候要注意数组index越界一类的问题
public class Solution { /** * @param n the nth * @return the nth sequence */ public String countAndSay(int n) { // Write your code here if(n < 1) return null; if(n == 1) return "1"; String prev = "1"; String next = ""; for(int i = 2; i <= n; i++){ char[] temp = prev.toCharArray(); int index = 0; while(index < temp.length){ int count = 0; count++; index++; while(index < temp.length && temp[index] == temp[index - 1]){ count++; index++; } next = next + String.valueOf(count) + temp[index - 1]; } prev = next; next = ""; } return prev; } }
以上是关于lintcode-easy-Count and Say的主要内容,如果未能解决你的问题,请参考以下文章
UVA - 11920 0 s, 1 s and ? Marks
为啥我收到 TypeError: unsupported operand type(s) for -: 'str' and 'int'
Kuratowski's and Wagner's theorems
为啥我会收到“TypeError: unsupported operand type(s) for -: 'str' and 'str'”错误?