如果单词X由单词Y的前若干个字母构成,我们称X是Y的前缀,例如"c"、"ca"、"cat"是单词"cat"的前缀;类似地如果单词X由单词Y的最后若干个字母构成,我们称X是Y的后缀,例如"t"、"at"、"cat"是单词"cat"的后缀。请你编一程序判断一组单词是否满足任一单词都不是其它单词的前缀且任一单词都不是其它单词的后缀。C++
时间: 2023-07-02 21:14:15 浏览: 201
以下是一个 C++ 程序,可以实现你的要求:
```cpp
#include <iostream>
#include <vector>
#include <string>
using namespace std;
bool is_prefix(string s1, string s2) {
if (s1.size() > s2.size()) {
return false;
}
for (int i = 0; i < s1.size(); i++) {
if (s1[i] != s2[i]) {
return false;
}
}
return true;
}
bool is_suffix(string s1, string s2) {
if (s1.size() > s2.size()) {
return false;
}
for (int i = 0; i < s1.size(); i++) {
if (s1[s1.size() - 1 - i] != s2[s2.size() - 1 - i]) {
return false;
}
}
return true;
}
int main() {
vector<string> words = {"cat", "dog", "apple", "at", "t", "le"};
for (int i = 0; i < words.size(); i++) {
for (int j = 0; j < words.size(); j++) {
if (i != j) {
if (is_prefix(words[i], words[j]) || is_suffix(words[i], words[j])) {
cout << "Word " << words[i] << " is a prefix or suffix of word " << words[j] << endl;
return 0;
}
}
}
}
cout << "All words satisfy the requirement." << endl;
return 0;
}
```
程序中,我们定义了两个函数 `is_prefix` 和 `is_suffix`,分别用于判断一个单词是否是另一个单词的前缀或后缀。然后,我们遍历所有单词,对于每一对不同的单词,判断它们是否存在前缀后缀关系。如果存在,直接输出错误信息,程序结束;否则输出满足要求的信息。
阅读全文
相关推荐















