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

View as PDF

Points: 100 (p) Time limit: 1.0s Memory limit: 640M Input: stdin Output: stdout

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

Comments


  • 0
    thanhlamdnvn    8:21 p.m. 10 may, 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 oct, 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 sep, 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 sep, 2021 edited

          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 reply

          • 1
            dang7rickroll    4:22 p.m. 29 aug, 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 jun, 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;
              }
              

              • -17
                MadeInHollow    6:48 p.m. 23 apr, 2020

                This comment is hidden due to too much negative feedback. Click here to view it.

                1 reply