B2124 判断字符串是否为回文 题解

思路解析

这题主要分为两个部分:回文,字符串。

字符串的部分可以使用 C++ 自带的 \(\texttt{string}\) 型变量(字符串)进行操作,这题要用到 \(\texttt{string}\) 型变量中自带的可以返回字符串长度的length()函数。

回文的部分,我们可以根据题目内对回文的定义来判断一个字符串是否是回文:把一个字符串对折,如果两边一样,则是回文,不一样则不是。

如图,我们按照图上的方法进行匹配处理。

代码剖析

2.1定义字符串

string s;
cin>>s;

使用string定义一个字符串。

2.2循环判断回文

for(int i=0,j=s.length()-1;i<=s.length()/2;i++,j--){//两个下标依次查找两侧。
	if(s[i]!=s[j]){//如果匹配不上,就不是回文串
		cout<<"no"<<endl;
		return 0; 
   }
}
cout<<"yes"<<endl;//都匹配上了,就是回文串

我们使用下标 \(i,j\) 来依次对比对折后的两侧。如果发现两侧中某个位置不能互相匹配,立即输出noreturn 0

如果没有成功return 0,即没有找到不匹配的地方,那么这个字符串就是回文串,输出yes

完整代码

#include <bits/stdc++.h> //建议选择万能头文件,避免写程序前打很多头文件
using namespace std;
int main()
{
    string s;//定义string类(字符串)
    cin>>s;
    for(int i=0,j=s.length()-1;i<=s.length()/2;i++,j--){
        if(s[i]!=s[j]){
            cout<<"no"<<endl;
			return 0; 
        }
    }//判断回文的循环
    cout<<"yes"<<endl;
    return 0;
}

AC记录

posted @ 2022-01-26 17:32  Shunpower  阅读(567)  评论(0编辑  收藏  举报