
這題計算連續字符串,組成為 重複次數+數字。
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 練習外,我也入手了這本,題庫來自真正的面試,並非摘自教科書。它們反映出頂尖公司真正會出的題目,你可以藉此做好充分準備。
需要的話可以看看,寫得很仔細。
需要的話可以看看,寫得很仔細。

沒有留言:
張貼留言