题目链接:
解题思路:
对于 string 类,不能使用 cin.get()和 cin.getline()进行输入,这会报错,
但用 cin 输入又无法输入带空格的字符串
其解决方法:
使用 getline()函数而不是 cin 对象的 getline()函数,这二者的参数有区别,
而且也不用担心字符串长度的问题。
其格式为:
getline(cin,string_name);
友情链接:
参考代码:
#include<bits/stdc++.h>
using namespace std;
int main( )
{
string s;
getline(cin,s);
int begin = 0;
//int end = s.end()-1;//注意end()指向字符串末尾的最后一个字符,所以需要减1
int end = s.length()-1;
while(begin < end)//这里不用 != 的原因:防止字符串的长度是偶数,那么就会出错
/*例如:输入abccba
此时cc的下标分别是2,3
本应到此就结束while循环,
但因为是 !=
所以会使得循环结束,故使得结果出现误差*/
{
if(s[begin] == s[end])
{
begin++;
end--;
}
else
{
cout << "NO" << endl;
return 0;
}
}
cout << "YES" << endl;
return 0;
}
这里可以不使用 flag 作为判断字符串是否是回文串的标识,
因为如果一个循环下来如果没有提前退出 main() 函数,
则说明该字符串是回文串,
如果不是,
则会提前返回主函数
版权声明:本文为m0_64075307原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。