Xâu đối xứng (Palindrom)

Xem PDF

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

Cho một xâu kí tự, hãy kiểm tra tính đối xứng của nó. Một xâu kí tự được gọi là xâu đối xứng nếu ta đọc xâu này từ trái sang phải hoặc từ phải sang trái là như nhau.

Input

  • Một xâu ký tự \(S\).

Output

  • In ra \(YES\) nếu \(S\) là xâu đối xứng, ngược lại in ra \(NO\).

Constraints

  • \(1 \leq S.size() \leq 255\)

Example

Test 1

Input
abccba 
Output
YES

Test 2

Input
abcccc 
Output
NO

Bình luận


  • 0
    thanhlamdnvn    8:21 p.m. 10 Tháng 5, 2024

    s=str(input())
    s2=s[::-1]
    if s==s2:
    print('YES')
    else:
    print('NO')
    ri thôi


    • -2
      Mochiracvc1    11:09 a.m. 21 Tháng 10, 2023

      Hàm kiểm tra Xâu đối xứng :
      def xaudx(s):
      if s[::-1]==s:
      return 1
      return 0


      • -2
        PY2EVuMinhQuan    7:33 p.m. 11 Tháng 9, 2023
        Python spoiler

        code:

        str1 = input("nhap x: ")
        if x == x[::-1]:
            print("YES")
        else:
            print("NO")
        

        x[::-1] -> đảo ngược xâu

        😆


        • -3
          tkvinhtruongquang    1:36 p.m. 17 Tháng 9, 2021 đã chỉnh sửa

          bài này bộ test khá dở :v, làm như thế này mà ccx được 100 điểm thì thôi :v
          int main(){
          string S,check;
          getline(cin,S);
          for(int i=1;i<=S.size();i++){
          if(S[i-1]==S[S.size()-i]) check="YES";
          else check="NO";
          }
          cout<<check;
          }(anh em đừng chép code này , nó đúng ở đây ,nhưng sai ở chỗ khác, cách tốt nhất là tự suy nghĩ đê :v)
          lí do code này đúng là vì bộ test này luôn có phần tử đầu và phần tử cuối khác nhau, chẳng hạn như là ababab, có a và b khác nhau nên nó in ra là no nên đúng, nhưng nếu đổi thành baabab thì nó sẽ in ra Yes

          1 phản hồi

          • 0
            dang7rickroll    4:22 p.m. 29 Tháng 8, 2021

            C++
            int main()
            {
                string s;
                cin >> s;
            
                for (int l = 0, r = sz(s) - 1; l < r; l++, r--)
                    if (s[l] != s[r])
                        return cout << "NO", 0;
            
                cout << "YES";
                return 0;
            }
            

            (Thử chức năng thôi nha, AE đừng downvote :D)


            • 3
              SPyofgame    2:34 a.m. 19 Tháng 6, 2020

              Spoiler Alert


              Approach 1

              Tạo một xâu t là đảo ngược của xâu s.

              isPalindrome(s) = true <=> s = t


              Reference AC code | O(n) time | O(n) auxiliary space | string

              C++
              int main()
              {
                  string s;
                  cin >> s;
              
                  string t = s;
                  reverse(t.begin(), t.end());
              
                  cout << (s == t ? "YES" : "NO");    
              }
              

              Approach 2

              Chạy i từ 1 -> n / 2, nếu vị trí đối xứng của i có giá trị khác nhau thì isPalindrome(s) = false


              Reference AC code | O(n) time | O(1) auxiliary space | string

              C++
              int main()
              {
                  string s;
                  cin >> s;
              
                  for (int i = 0; i < s.size() / 2; ++i)
                      if (s[i] != s[s.size() - i - 1])
                          return cout << "NO", 0;
              
                  cout << "YES";
                  return 0;
              }
              

              Approach 3

              Cho chạy 2 con trỏ (l từ đầu mảng -> cuối mảng) và (r từ cuối mảng -> đầu mảng).

              Nệu tại lr tương ứng nhau có giá trị khác nhau thì isPalindrome(s) = false


              Reference AC code | O(n) time | O(1) auxiliary space | string

              C++
              int main()
              {
                  string s;
                  cin >> s;
              
                  for (int l = 0, r = sz(s) - 1; l < r; l++, r--)
                      if (s[l] != s[r])
                          return cout << "NO", 0;
              
                  cout << "YES";
                  return 0;
              }
              

              • -18
                MadeInHollow    6:48 p.m. 23 Tháng 4, 2020

                Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.

                1 phản hồi