字符串回文
String Palindrome
当我尝试 运行 这段代码时,我得到了相反的输出。请告诉我,哪里做错了...
#include<bits/stdc++.h>
using namespace std;
bool ps(string s,int l, int r){
if(l>=r)
return true;
if(s[l]!=s[r])
return false;
return ps(s,++l,--r);
}
int main(){
string str="naman";
int s=str.size();
bool b=ps(str,0,s);
if(!b){
cout<<"Not a plaindrome";
}
else{
cout<<"A plaindrome";
}
return 0;
}
您在 ps
中输入了错误的起始值。行
bool b=ps(str,0,s);
应该是
bool b=ps(str,0,s - 1);
因为字符串中的最后一个字符位于索引 string.size() - 1
而不是 string.size()
当我尝试 运行 这段代码时,我得到了相反的输出。请告诉我,哪里做错了...
#include<bits/stdc++.h>
using namespace std;
bool ps(string s,int l, int r){
if(l>=r)
return true;
if(s[l]!=s[r])
return false;
return ps(s,++l,--r);
}
int main(){
string str="naman";
int s=str.size();
bool b=ps(str,0,s);
if(!b){
cout<<"Not a plaindrome";
}
else{
cout<<"A plaindrome";
}
return 0;
}
您在 ps
中输入了错误的起始值。行
bool b=ps(str,0,s);
应该是
bool b=ps(str,0,s - 1);
因为字符串中的最后一个字符位于索引 string.size() - 1
而不是 string.size()