复制所有的回文单词。将一行英文文本(含空格的字符串)中的所有回文单词存储到二维数组中,并返回所有回文单词的个数。求解答
#include <iostream>
#include <cstring>
using namespace std;
bool isPalindrome(string word) {
int length = word.length();
for (int i = 0; i < length / 2; i++) {
if (word[i] != word[length - i - 1]) {
return false;
}
}
return true;
}
int copyPalindromes(string line, string palindromes[][100]) {
int count = 0;
string word = "";
int row = 0;
int col = 0;
for (int i = 0; i <= line.length(); i++) {
if (line[i] == ' ' || i == line.length()) {
if (isPalindrome(word)) {
palindromes[row][col] = word;
col++;
count++;
}
word = "";
} else {
word += line[i];
}
if (i == line.length() - 1 && isPalindrome(word)) {
palindromes[row][col] = word;
count++;
}
}
return count;
}
int main() {
string line;
cout << "Enter a line of text: ";
getline(cin, line);
string palindromes[100][100];
int count = copyPalindromes(line, palindromes);
cout << "Number of palindromes found: " << count << endl;
cout << "Palindromes: " << endl;
for (int i = 0; i < count; i++) {
cout << palindromes[0][i] << endl;
}
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:例如:请输出1000~10000的回文数。
下面来看看具体如何做吧~~~~~