如何解决如何有效地从已在另一个字符串中找到的字符串中删除重复字符?
以这个字符串为例(“Hello World”)。如果您搜索此字符串中的每个元音并输出它,您将得到 eoo。在这种情况下,我希望不再找到 'o',所以它只剩下 e 和 o。
这是从“Hello World”输出“eoo”的代码。
char a[256],v[6]="aeiou";
cin.get(a,256);
for(int i = 0; i < strlen(a); i++){
if(strchr(v,a[i])){
cout << a[i];
}
}
我想过删除我从 v 中找到的每个元音,
因此,如果您发现 a[i] 是元音,请从 v 中删除该元音(例如,如果 a[i] 是 e,则 v 变为 aiou。
我想知道这是不是最有效的方法。
解决方法
我想过删除我从 v 中找到的每个元音,
很可能是。
请注意,如果搜索元素的数量很大,那么使用诸如 std::unordered_set
之类的东西会更有效。对于元音这样的小集合,线性搜索可能是最优的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。