0

我想知道如何编写一个函数来确定从波纹管代码中读取的列表是否是回文?例如,如果说数字列表是 123456,程序将打印出“这个列表不是回文”,如果列表是 12321,那么它会打印出“这个列表是回文”。

任何帮助,将不胜感激。

void popArray(int array1[]) {
    ifstream infile("TEST1.TXT");
    if (!infile) {
        cout << "Can't open file: " << endl;
        exit(EXIT_FAILURE);
    }
    for (int i = 0; i < 10; i++) {
        infile >> array1[i];
        cout << setw(2) << array1[i];
    }
}
void reverseList(int array1[]) {
    for (int x = 9; x > -1; x--) {
        cout << setw(2) << array1[x];
    }
}
4

3 回答 3

1

我建议使用索引i并让它从0size/2。然后在循环内比较list[i] == list[(size - 1) - i ]

于 2013-04-18T07:43:38.033 回答
0
bool isPalindrome(int array1[], int size) {
    for (int i = 0, j = size - 1; i < j; ++i, --j)
        if (array1[i] != array1[j])
            return false;
    return true;
}
于 2013-04-18T07:47:00.753 回答
0

你甚至可以尝试这种方式

for(i=0;i<(size/2);i++)
 if(b[i] - b[size-i] !=0 )
  break;

if(i<(size/2))
 cout<<"Not palindrome";
else
 cout<<"palindrome";

假设b是原始数组的临时副本

于 2013-04-18T07:49:59.763 回答