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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP