gpt4 book ai didi

c++ - 如何查看一个字符串是否包含多个不同的字母?

转载 作者:行者123 更新时间:2023-11-28 00:10:53 30 4
gpt4 key购买 nike

这是针对 C++ 程序的。我们应该能够输入一个单词(长度为 4 到 10 个字母),然后生成该单词的 n 个拼写(n 是该单词中的字母数)。显然,只有两种不能根据这些标准打乱的单词是每个字母都相同的单词,以及除了一个字母之外每个字母都相同的单词(如 OOOOA)。这两个异常(exception)的原因是,如果单词由相同的字母组成,那么就没有单词的拼写,因为单词的每个拼写都是相同的。此外,原始单词不算作打乱。所以如果你有 OOOOA 那么它只会生成 4 个打乱

呜呜呜哦哦哦呜呜呜和呜呜呜

当它应该有 5 个时。

对于大多数 5 个字母的单词(如 OOAAO),存在超过 5 个的拼写 - 但我的程序只需要生成其中的 5 个。

在程序中,我已经创建了一个函数来告诉我输入的字符串是否由所有相同的字符组成,因此我处理了第一种情况。但是,我应该如何编写一个输入字符串的函数来告诉我该字符串是否可以被加密。换句话说,函数应该告诉我字符串

其中至少包含三个完全不同的字符(例如 QRCCC、ORJJJ、QRTEW 等)

包含混合字符,其中只有两个相同,在这种情况下,每个不同字符至少有两个。 (如 OOTTO、OTTOO、QRRQQ)

我是 C++ 的新手,所以请不要引用我目前可能不理解的东西(比如冒泡排序。我可能知道这意味着什么,但如果我知道,我只知道它在代码中的样子,所以请不要使用这样的术语,除非它直接出现在代码中)

我不知道在这里做什么。请指教。谢谢。

最佳答案

我想你要找的是这个:

#include<string>
#include<algorithm>
using namespace std;

int main()
{
string word;
cin>>word;
int count=0;
std::sort(word.begin(), word.end());
do
{
count++;
}
while (next_permutation(word.begin(), word.end()));
cout<<"Length is :"<<word.length()<<endl;
if(count>word.length())
{
cout<<"No. of scrambles are >= length of word\n";
}
else
{
cout<<"No. of scrambles are < length of word\n";
return 0;
}
count=0;
std::sort(word.begin(), word.end());
do
{
cout<<word<<"\n";
}
while (next_permutation(word.begin(), word.end()));
}

在任何情况下,它都会检查您输入的字符数的阶乘。重复的单词不会像您要求的那样成为组合的一部分。

关于c++ - 如何查看一个字符串是否包含多个不同的字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33193660/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com