Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ tìm chuỗi có chuỗi con palindrome độ dài tối đa k


Giả sử chúng ta có hai số n và k. Giả sử chúng ta đang cố tạo một chuỗi S chỉ với ba loại ký tự 'a', 'b' và 'c'. Độ dài tối đa của một chuỗi con của chuỗi S là palindrome mà không vượt quá k.

Ví dụ, nếu đầu vào là n = 3; k = 2, thì đầu ra sẽ là "aab", vì độ dài của nó là 3 và chuỗi con palindrome là "aa" với độ dài ít nhất 2. (Các đáp án khác cũng có thể).

Các bước

Để giải quyết bài toán này, chúng ta sẽ làm theo các bước sau:

S := chuỗi rỗng j := 0 for khởi tạo i := 0, khi i < n, cập nhật (tăng i lên 1), do:    S := S nối (j + ASCII của 'a') dưới dạng ký tự    j := (j + 1) mod 3 return S

Ví dụ

Xem triển khai sau để hiểu rõ hơn:

#include <bits/stdc++.h> using namespace std; string solve(int n, int k) {    string S = "";    int j = 0;    for (int i = 0; i < n; i++) {       S += j + 'a';       j = (j + 1) % 3;    }    return S; } int main() {    int n = 3;    int k = 2;    cout << solve(n, k) << endl; }

Đầu vào

3, 2

Đầu ra

abc