⬆︎
×

[PAT-A] 1140 Look-and-say Sequence

Hyplus目录

Java

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        int n = sc.nextInt();

        for (int i = 2; i <= n; i++) {
            StringBuilder sb = new StringBuilder();
            int k = 0;
            for (int j = 0; j < a.length(); j++) {
                k++;
                if (j == a.length() - 1 || a.charAt(j) != a.charAt(j + 1)) {
                    sb.append(a.charAt(j)).append(k);
                    k = 0;
                }
            }
            a = sb.toString();
        }

        System.out.println(a);
        sc.close();
    }
}

C++

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

int n;
string a;

int main() {
    cin >> a >> n;
    for (int i = 2; i <= n; i++) {
        string temp;
        int k = 0;
        for (int j = 0; j < a.length(); j++) {
            k++;
            if (a[j] != a[j + 1]) {
                temp += a[j] + to_string(k);
                k = 0;
            }
        }
        a = temp;
    }
    cout << a;
    return 0;
}

发表评论