這個編譯良好,並且沒有空格,但是一旦我在其中放入空格,它或者告訴我它不是迴文或超時。任何幫助將不勝感激!帶棧和隊列的字符串迴文(C++)
int main()
{
queue<char> q;
stack<char> s;
string the_string;
int mismatches = 0;
cout << "Enter a line and I will see if it's a palindrome:" << endl;
cin >> the_string;
int i = 0;
while (cin.peek() != '\n')
{
cin >> the_string[i];
if (isalpha(the_string[i]))
{
q.push(toupper(the_string[i]));
s.push(toupper(the_string[i]));
}
i++;
}
while ((!q.empty()) && (!s.empty()))
{
if (q.front() != s.top())
++mismatches;
q.pop();
s.pop();
}
if (mismatches == 0)
cout << "This is a palindrome" << endl;
else
cout << "This is not a palindrome" << endl;
system("pause");
return EXIT_SUCCESS;
}
'CIN >> the_string'不讀取行提示符建議。 – chris 2013-03-24 04:33:01
爲什麼這麼複雜的解決方案?您可以在沒有堆棧或隊列的情況下執行迴文檢查。你也可以做到這一點,沒有任何額外的空間要求。 – user93353 2013-03-24 04:38:17
@ user93353我認爲OP正在做他的功課,並且使用堆棧和隊列是必需的。 – fbafelipe 2013-03-24 04:54:44