文字列が回文かどうかをチェックするコードを書こうとしました。コードは次のとおりです。アルファベット文字列がC++の回文体であるかどうかを調べる
#include <iostream>
#include <string>
using namespace std;
bool pal(string str)//This block of code checks if input string is a palindrome
{
bool valid;
int i;
for (i = 0; i < str.length(); i++)
{
if (str[-i] == str[i])
{
valid = true;
}
else
{
valid = false;
}
}
return valid;
}
int main()
{
string s;
cin >> s;
if (!pal(s))
{
cout << "NO" << endl;
}
else
{
cout << "YES" << endl;
}
return 0;
}
現在、「デバッグアサーション失敗」エラーが発生しています。
str [-i]はC++では動作しません。Pythonから借用したと思いますか? str [str.size()-1-i] – AlexG
'i'が1になるとき' str [-i] 'とは何ですか? – NathanOliver
インターネットを "stackoverflow C++ palindrome alphabet"で検索することを強くお勧めします。 –