复制所有的回文单词。将一行英文文本(含空格的字符串)中的所有回文单词存储到二维数组中,并返回所有回文单词的个数。求解答
2条回答 默认 最新
- 社区专家-Monster-XH 2023-03-01 22:16关注
#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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报