

Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
Ý tưởng làm bài:
Đầu tiên đặt một biến d là độ dài của xâu s; sau đó nếu `s_i` khác `s_d-i-1` (vì d-1 là ký tự cuối của xâu) thì in ra NO và dừng lại, còn không thì in ra YES và dừng lại.
_________________________________________
`Code` `C`++:
#include <iostream>
using namespace std;
int main(){
long long i,d;
string s;
cin>>s;
d=s.length();
for (i=0; i<d; i++)
if (s[i]!=s[d-i-1]){
cout<<"NO";
break;
}
else {
cout<<"YES";
break;
}
return 0;
}
___________________________________________
`@``kieu`
//Xin Hay Nhất!
Hãy giúp mọi người biết câu trả lời này thế nào?
#include <bits/stdc++.h>
using namespace std;
bool doixung(string s)
{
for (int i=0; i<=s.length()/2; i++)
if (s[i]!=s[s.length()-i-1])
return 0;
return 1;
}
int main()
{
string s;
getline(cin,s);
if (doixung(s)) cout<<"YES";
else cout<<"NO";
return 0;
}
*Gợi ý:
– Cách dùng palindrome cải tiến từ cách kiểm tra bình thường, thay vì sinh lại một xâu nghịch đảo rồi so sánh thì chúng ta so sánh trực tiếp từng kí tự trên xâu gốc, nên thời gian chạy sẽ nhanh hơn cách bình thường..
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin