用C++做一下题目:
给你一个字符串 S 由小写英文字母组成。S 有多少个不同的非空子串?
子串是连续的子序列。
输入样例1:yay
输出样例1:5
输入样例2:aababc
输出样例2:17
输入样例3:abracadabra
输出样例3:55
求C++代码,急!希望5-10min能有回复!
谢!
用C++做一下题目:
给你一个字符串 S 由小写英文字母组成。S 有多少个不同的非空子串?
子串是连续的子序列。
输入样例1:yay
输出样例1:5
输入样例2:aababc
输出样例2:17
输入样例3:abracadabra
输出样例3:55
求C++代码,急!希望5-10min能有回复!
谢!
晚上好🌙🌙🌙
本答案参考ChatGPT-3.5
问题: 求解给定字符串S中有多少个不同的非空子串。
解决方案:
参考代码如下:
#include <iostream>
#include <unordered_set>
#include <string>
using namespace std;
int main() {
string S;
cout << "请输入字符串S: ";
cin >> S;
int count = 0;
unordered_set<string> substrings;
for (int i = 0; i < S.length(); i++) {
for (int j = 1; j <= S.length() - i; j++) {
string substring = S.substr(i, j);
substrings.insert(substring);
}
}
count = substrings.size();
cout << "不同的非空子串的数量为: " << count << endl;
return 0;
}
你可以在本地编译和运行该代码,输入字符串S并查看结果。希望对你有帮助!