
這題計算連續字符串,組成為 重複次數+數字。
LeetCode 題目連結
https://leetcode.com/problems/count-and-say/
題目
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
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 where 1 ≤ n ≤ 30, generate the nth term of the count-and-say sequence. You can do so recursively, in other words from the previous member read off the digits, counting the number of digits in groups of the same digit.
Note: Each term of the sequence of integers will be represented as a string.
Accept 作法
Runtime: 12 ms
Memory: 40.2 MB
Java 程式碼
class Solution {
public String countAndSay(int n) {
if(n == 0){
return null;
}
int i =1;
String ans = "1";
while(i < n){
StringBuilder builder = new StringBuilder();
int count = 1;
for(int j = 0; j < ans.length(); j++){
if(j < ans.length() - 1 && ans.charAt(j) == ans.charAt(j+1)){
count++;
}else{
builder.append(count+""+ans.charAt(j));
count = 1;
}
}
ans = builder.toString();
i++;
}
return ans;
}
}
更多 LeetCode 相關資源
複習程式面試書籍
除了 LeetCode 練習外,我也入手了這本,題庫來自真正的面試,並非摘自教科書。它們反映出頂尖公司真正會出的題目,你可以藉此做好充分準備。
需要的話可以看看,寫得很仔細。
需要的話可以看看,寫得很仔細。
沒有留言:
張貼留言