我需要创建一个允许用户输入字符串的程序,并且我的程序将检查他们输入的字符串是否是回文(可以向后读取的单词与向前读取的单词相同)。
原文由 Wil Prim 发布,翻译遵循 CC BY-SA 4.0 许可协议
我需要创建一个允许用户输入字符串的程序,并且我的程序将检查他们输入的字符串是否是回文(可以向后读取的单词与向前读取的单词相同)。
原文由 Wil Prim 发布,翻译遵循 CC BY-SA 4.0 许可协议
检查从两端开始的字符串并在中间相遇。如果存在差异,则返回 false。
#include <iostream>
bool palidromeCheck(std::string str) {
for (int i = 0, j = str.length()-1; i <= j; i++, j--)
if (str[i] != str[j])
return false;
return true;
}
int main(){
std::cout << palidromeCheck("mike");
std::cout << palidromeCheck("racecar");
}
原文由 tothemax 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答485 阅读✓ 已解决
只需将字符串与自身进行比较:
string
的这个构造函数接受一个开始和结束迭代器,并从这两个迭代器之间的字符创建字符串。由于rbegin()
是字符串的结尾,并且在字符串中向后递增,因此我们创建的字符串将反向添加input
的字符,从而反转字符串。然后,您只需将其与
input
进行比较,如果它们相等,则为回文。这不考虑大小写或空格,因此您必须自己改进。