Kiểm tra dãy đối xứng

Xem PDF

Điểm: 100 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho một mảng \(n\) số nguyên. Kiểm tra xem mảng có đối xứng không. Mảng đối xứng là mảng khi viết theo chiều xuôi hay ngược lại đều được kết quả giống nhau.

Đầu vào: Dòng đầu tiên là số nguyên \(n\) \((1 \le n \le 10^6)\). Dòng thứ 2 là mảng \(n\) số nguyên, các số cách nhau bởi dấu cách, trị tuyệt đối của
các số này không quá \(10^{18}\).

Đầu ra: Nếu mảng đối xứng in ra “TRUE”, nếu không in ra “FALSE”.

Example

Test 1

Input
5
5 4 4 3 2
Output
FALSE

Test 2

Input
3
4 2 4
Output
TRUE

Bình luận


  • 0
    Phamduchiep    8:33 p.m. 22 Tháng 10, 2024

    b1 nhập n,mảng của n;
    b2 khai báo i=0,j=n-1(duyệt từ 2 đầu duyệt lại),khai báo biến đánh dấu ok=1;
    b3 dùng vòng lập while(i<j) nếu a[i]!=a[j]{ok=2;break;} i++;j--;
    b4 nếu ok==1 cout<<"TRUE";
    ngược lại cout<<"FALSE";

    code c++

    include<bits/stdc++.h>

    using namespace std;
    int main(){
    long long n,s=1,ok=1;
    cin>>n;
    long long a[n];
    for(long long i=0;i<n;i++) cin>>a[i];
    int i=0,j=n-1;
    while(i<j){
    if(a[i]!=a[j]){
    ok=2;
    break;
    }
    i++;j--;
    }
    if(ok==2) cout<<"FALSE";
    else cout<<"TRUE";
    }


    • 0
      nongducquan    5:36 p.m. 11 Tháng 7, 2024

      Bài này tương tự như bài kiểm tra xâu đối xứng
      Cách 1 : ta duyệt từ cuối lên đầu mảng a rồi gán giá trị đó cho mảng b
      duyệt từ 1->n nếu a[i] != b[i] thì in ra false rồi return 0 luôn
      nếu hết vòng for đó còn chạy thì in ra true
      Cách 2 : dùng 2 con trỏ l = 1, r = n kiểm tra nếu a[l] != a[r] thì kết thúc luôn
      điều kiện là while (l <= r) mỗi bước nhãy l++ và r--
      Cách 3 : duyệt từ 1 -> n/2 kiểm tra nếu a[i] != a[n-i+1] thì kết thúc ngược lại thì là true
      Code :

      include<bits/stdc++.h>

      define ll long long

      using namespace std;
      ll n, a[1000003];

      int main() {
      cin>>n;
      for (int i = 1; i <= n; i++) cin>>a[i];
      for (int i = 1; i <= n/2; i++) {
      if (a[i] != a[n-i+1]) {
      cout<<"FALSE";
      return 0;
      }
      }
      cout<<"TRUE";
      }


      • 0
        ductran14032008    12:11 p.m. 28 Tháng 5, 2024

        include <bits/stdc++.h>

        using namespace std;

        int main(){
        long long int n;
        cin >> n;
        long long int a[n];
        for(int i=0; i<n; i++) { cin >> a[i];
        }
        bool kt=true;
        for(int i=0;i<n/2;i++){
        if(a[i]!=a[n-i-1]){
        kt=false;
        break;
        }
        }
        kt==true ? cout <<"TRUE" : cout <<"FALSE";
        return 0;
        }
        AC nha


        • 0
          Mochiracvc1    7:46 p.m. 21 Tháng 12, 2023

          dùng list thì đc 80/100 còn dùng input() thì đc 90/100 =)). Khó AC qá =))

          1 phản hồi

          • 0
            khoinguyentl2023    10:37 p.m. 20 Tháng 4, 2023 chỉnh sửa 2

            yêu cầu cho cái test số bé bé lại một tí khoảng dưới 300 000 hoặc dưới 400 000 chứ test mạnh quá cứ MLE hoài hoặc tăng bộ nhớ lên 70 đến 80 mb được ko ạ


            • -3
              NLTD2010    3:48 p.m. 3 Tháng 3, 2023

              Hi các bạn!


              • 2
                vanphukhang_0604    9:39 p.m. 1 Tháng 11, 2022

                Có thể tăng giới hạn bộ nhớ lên tầm 70mb không ạ :") test case 2 của em bị MLE do dùng 64.3-65mb bộ nhớ :")


                • 1
                  nguyentanhyhuu    4:16 p.m. 30 Tháng 10, 2022

                  Tăng bộ nhớ lên chút được không minhkhangcqt ?
                  khoảng 70 Mb thôi


                  • 0
                    thanhkhoa123    6:49 p.m. 16 Tháng 6, 2022 đã chỉnh sửa

                    =))


                    • -3
                      minhkhoidepzai    10:31 p.m. 28 Tháng 1, 2022

                      bài ni test yếu

                      1 phản hồi