第一個思路有問題
就是回文的時候是奇數個的情況
不同於判斷括號的問題
還是用數組寫吧
#include <iostream>
#include <stdio.h>
#include <stack>
using namespace std;
int main(){
int t;
cin>>t;
stack<char>my;
char a[100];
while(t--){
cin>>a;
for(int i=1; i<strlen(a); i++){
if(my.empty()==1)//這個判斷必須有
my.push(a[i]);
else{
if(my.top()==a[i])
my.pop();
else
my.push(a[i]);
}
}
if(my.empty()==1)
cout<<"yes"<<endl;
else{
cout<<"no"<<endl;
while(my.empty()!=1)my.pop();
}
}
return 0;
}
正解
#include <iostream>
using namespace std;
int main(){
int t,n;
bool flag;
char s[100];
cin>>t;
while(t--){
flag=true;
cin>>s;
n=strlen(s);
for(int i=0; i<=n/2-1; i++){
if(s[i]!=s[n-i-1]){
flag=false;
break;
}
}
if(flag)
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
}
return 0;
}