Computer >> Máy Tính >  >> Lập trình >> C ++

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

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

Vì vậy, nếu đầu vào giống như n =3; k =2, thì đầu ra sẽ là "aab", bởi vì độ dài của nó là 3 và chuỗi con palindrome là "aa" với độ dài ít nhất là 2. (cũng có thể có các câu trả lời khác).

Các bước

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

S := a blank string
j := 0
for initialize i := 0, when i < n, update (increase i by 1), do:
   S := S concatenate (j + ASCII of 'a') as character
   j := (j + 1) mod 3
return S

Ví dụ

Hãy cùng chúng tôi xem cách 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