C++ 程式查詢字串中迴文子串,且長度不超過 k


假設我們有兩個數字 n 和 k。我們嘗試生成僅包含三種字元型別 'a'、'b' 和 'c' 的字串 S。字串 S 的子串的最大長度為 k 的迴文子串。

因此,如果輸入類似於 n = 3;k = 2,那麼輸出將是 "aab",因為它的長度為 3,並且迴文子串 "aa" 的長度至少為 2。(其他答案也可能)。

步驟

要解決此問題,我們將遵循以下步驟:

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

示例

讓我們看看以下示例以更好地理解:

#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;
}

輸入

3, 2

輸出

abc

更新於:04 年 3 月 2022 日

224 次觀看

開啟你的職業生涯

完成課程,獲得認證

開始學習
廣告