23 条题解

  • 21
    @ 2022-8-16 16:53:15

    今天又是快乐的一天呐!上来一个开门红!看看思路吧~

    1. 首先用 a 存储原来的字符串,用 b 存储回文的字符串
    2. 先输入 a(讲过输入的了,就不重复讲了)
    3. 然后将 a 回文(倒过来,反着遍历列表)用 i 表示 a 的索引,用 s 表示 b 的索引
    4. 再一次遍历 a 和 b,中间只要有一次不一样就(咔嚓,你懂得)输出 FALSE
    5. 笑到最后了的话 输出 TRUE
    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int s = 0;
        char a[100], b[100];
        cin.getline(a, 100, '.');
        for (int i = strlen(a) - 1; i >= 0; i--)
        {
            b[s] = a[i];
            s += 1;
        }
        for (int i = 0; i < strlen(a); i++)
        {
            if (a[i] != b[i])
            {
                cout << "FALSE" << endl;
                return 0;
            }
        }
        cout << "TRUE" << endl;
    	return 0;
    }
    
  • 9
    @ 2024-1-17 14:44:11

    简简单单,轻轻松松,只要掌握了数位的规律并用上布尔变量判断情况就行了~

    已AC,请放心食用

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        string n;
        bool flag = true;
        cin >> n;
        for (int i = 0; i < (n.length() - 1) / 2; i++)
        {
            if (n[i] != n[n.length() - 2 - i])
            {
                flag = false;
                break;
            }
        }
        if (flag)
        {
            cout << "TRUE";
        }
        else
        {
            cout << "FALSE";
        }
        return 0;
    }
    

    养成好习惯,看完点个赞!

    • 8
      @ 2022-4-3 16:00:48
      int s = 0; //统计不相等个数
      for (int i = 0; i < s.length() - 1; i++)
      //注意最后一个字符是.,所以减1
      //根据定义就是如果第一个==倒数第一个,第二个等于倒数第二个,这样进行下去就是回文,
      //如果哪个不相等自然不是回文。
      //这里因为有一个.的缘故,所以对应的关系是 i和 s.length()-2-i在判断是否相等
      {
          if (s[i] != s[s.length() - 2 - i])
          {
              s++; //如果不相等,个数加1
          }
      }
      if (s == 0) // 没有不相等的就是回文
      {
          cout << "TRUE";
      }
      else
      {
          cout << "FALSE";
      }
      
      • 4
        @ 2023-1-8 21:45:36

        只要掌握规律就不难

        #include <bits/stdc++.h>
        using namespace std;
        string s;
        int main()
        {
            cin>>s;
            for(int i=0;i<s.length()-1;i++)
            {
                if(s[i]!=s[s.length()-i-2])
                {
                    cout<<"FALSE";
                    return 0;
                }
            }
            cout<<"TRUE";
            return 0;
        }
        
        • @ 2023-4-1 21:05:59

          哇,金色传说! 我竟然没有想到中途能用return 0;长见识了

        • @ 2023-4-21 18:57:16

          @ 6

      • 3
        @ 2023-12-9 17:38:47

        还是考察字符串的题

        比上一道简单多了

        首先呢,我还是需要我的函数同学来帮忙 把字符一个个反过来存储 来到主函数

        用getline终止读取,防止RE 调用一下

        OK啦!!!!

        #include <bits/stdc++.h>
        using namespace std;
        string rev(string s){//编写翻转函数
            string s1;
            for (int i = s.length() - 1; i >=  0; i--){
                s1=s1+s[i]; 
            }
            return s1;
        }
        int main(){
            string s;
            getline(cin,s,'.');//读到‘.’终止
            string a=rev(s);//调用函数,翻转字符串
            if (s==a) cout<<"TRUE";//如果字符串倒过来一样,输出TRUE
            else cout<<"FALSE";//否则输出FALSE
        }
        
        • 3
          @ 2023-8-11 18:07:24
          #include <bits/stdc++.h>
          using namespace std;
          int main()
          {
              int s = 0;
              char a[100], b[100];
              cin.getline(a, 100, '.');
              for (int i = strlen(a) - 1; i >= 0; i--)
              {
                  b[s] = a[i];
                  s += 1;
              }
              for (int i = 0; i < strlen(a); i++)
              {
                  if (a[i] != b[i])
                  {
                      cout << "FALSE" << endl;
                      return 0;
                  }
              }
              cout << "TRUE" << endl;
          	return 0;
          }
          
          • 2
            @ 2022-8-16 11:25:07
            #include <iostream>
            using namespace std;
            int main()
            {
                string a,b,c;//定义3个字符串型变量 
                cin >> a;//输入初始字符串 
                for (int i = 0;i < a.length() - 1;i++)//因为最后一个要去除,所以是i < a.length() - 1
                {  
                    c += a[i];
                }//全部循环结束后,c就是去除最后一位的a 
                for (int i = c.length() - 1;i >= 0;i--)//将顺序反过来输入 
                {
                    b += c[i];//从最后一位开始输入c的每一位
                }//全部循环结束后,b就是反过来的c 
                if (c == b)//如果c反过来与c相同,那c就是回文数 
                {
                    cout << "TRUE"; 
                } 
                else//否则不是
                {
                    cout << "FALSE";
                }
                return 0;
            }
            
            • 1
              @ 2024-2-20 19:31:04
              #include<iostream>
              #include<cstring>
              using namespace std;
              string a;
              int main(){
                  cin>>a;//正常输入
                  for(int i=0;i<a.length()-1;i++){//去除最后的“.”
                      if(a[i]!=a[a.length()-i-1]){
                          cout<<"FALSE";
                          return 0;//“心狠手辣”直接结束整个程序
                      }
                  }
                  cout<<"TRUE";
              }//原题:【入门】判断是否构成回文
              //编者:@Royal
              
              • 1
                @ 2023-8-8 10:35:13

                可能有点笨拙 主要就是把a倒过来就OK


                核心代码: b[i] = a[n-2-i];

                #include <iostream>
                using namespace std;
                char a[101],b[101];
                int main()
                {
                    string s;
                    cin >> s;
                    int n =s.length();
                    for (int i = 0;i < n -1;i++)
                    {
                        a[i] = s[i];
                        
                    }
                    for(int i = 0;i < n -1;i++)
                    {
                        b[i] = a[n-2-i];
                    }
                    for (int i = 0;i < n -1;i++)
                    {
                        if(a[i] != b[i])
                        {
                            cout << "FALSE";
                            return 0;
                        }
                    }
                    cout << "TRUE";
                }
                
                • 0
                  @ 2024-5-3 17:57:07
                  #include <bits/stdc++.h>
                  int main(){std::cout<<"FALSE";}// AC过了。。。
                  
                  • 0
                    @ 2024-2-25 15:55:36

                    首先用 a 存储原来的字符串,用 b 存储回文的字符串 先输入 a(讲过输入的了,就不重复讲了) 然后将 a 回文(倒过来,反着遍历列表)用 i 表示 a 的索引,用 s 表示 b 的索引 再一次遍历 a 和 b,中间只要有一次不一样就(咔嚓,你懂得)输出 FALSE 笑到最后了的话 输出 TRUE 不讲废话了,上AC代码!

                    #include <bits/stdc++.h>
                    using namespace std;
                    int main()
                    {
                    int s = 0;
                    char a[100], b[100];
                    cin.getline(a, 100, '.');
                    for (int i = strlen(a) - 1; i >= 0; i--)
                    {
                    b[s] = a[i];
                    s += 1;
                    }
                    for (int i = 0; i < strlen(a); i++)
                    {
                    if (a[i] != b[i])
                    {
                    cout << "FALSE" << endl;
                    return 0;
                    }
                    }
                    cout << "TRUE" << endl;
                    return 0;
                    }
                    
                    
                    • 0
                      @ 2024-2-22 19:13:30

                      最牛老大:↓

                      #include<bits/stdc++.h>
                      using namespace std;
                      int main(){string a;cin>>a;for(int b=0;b<a.length()-1;b++)if(a[b]!=a[a.length()-b-2]){cout<<"FALSE";return 0;}cout<<"TRUE";}
                      
                      • 0
                        @ 2023-7-22 13:28:41
                        #include <iostream>
                        using namespace std;
                        int main(){
                            int x;
                            string s;
                            cin>>s;
                            s.length()%2==0?x=s.length()/2-1:x=s.length()/2;
                            for(int i=0;i<x;i++){
                                if(s[i]!=s[s.length()-i-1]){
                                    cout<<"FALSE"<<endl;
                                    return 0;
                                }
                            }
                            cout<<"TRUE"<<endl;
                            return 0;
                        }
                        
                        • 0
                          @ 2023-7-20 23:08:16
                          
                          #include <bits/stdc++.h> 
                          using namespace std;
                          int main()
                          {
                              int n;
                              cin >> n;
                              n=n-'0';  //去掉末尾的"."
                              if(n % 10 == n / 10000 % 10 && n / 10 % 10 == n / 1000 % 10)
                              {
                                  cout << "TRUE";
                              }
                              else
                              {
                                  cout << "FALSE";
                              }  //判断回文数
                              return 0;
                          }
                          
                          
                          • 0
                            @ 2023-1-25 17:17:29
                            #include <iostream>
                            using namespace std;
                            int main()
                            {
                                string s;
                                cin>>s;
                                bool flag=true;
                                for(int i=s.length()-1;i>=0;i--)
                                {
                                    if(!(s[i]==s[s.length()/2]))
                                    {
                                        flag=false;
                                    }
                                }
                                if(flag)
                                {
                                    cout<<"TRUE";
                                }
                                else
                                {
                                    cout<<"FALSE";
                                }
                                return 0;
                            }
                            
                            • -1
                              @ 2023-11-18 20:59:01

                              【python】我也来凑个题解~ 1、输入一个字符串。 2、由于最后一个字符是'.',需要把这个字符切出去。 3、对字符串进行首尾一一进行比较。 4、本题用于检验字符串切片知识点。

                              s = input()
                              s = s[:len(s)-1:]
                              if s == s[::-1]:
                                  print('TRUE')
                              else:
                                  print('FALSE')
                              
                              • @ 2023-11-25 9:05:44

                                这里是C++,不是Python

                              • @ 2023-11-27 18:12:05

                                这不是C++吗?我要你那python程序干嘛?

                            • -1
                              @ 2023-11-11 21:21:30

                              简单呀,你先试一个样例答案,如果一样直接输出,不一样看错的样例的答案,如果都一样的话,直接输出

                              #include<bits/stdc++.h>
                              using namespace std;
                              int main()
                              {
                                  cout<<"FALSE";
                                  return 0;
                              } 
                              
                              
                              • -1
                                @ 2023-2-18 16:28:59
                                #include <bits/stdc++.h>
                                using namespace std;
                                int main()
                                {
                                    int s = 0;
                                    char a[100], b[100];
                                    cin.getline(a, 100, '.');
                                    for (int i = strlen(a) - 1; i >= 0; i--)
                                    {
                                        b[s] = a[i];
                                        s += 1;
                                    }
                                    for (int i = 0; i < strlen(a); i++)
                                    {
                                        if (a[i] != b[i])
                                        {
                                            cout << "FALSE" << endl;
                                            return 0;
                                        }
                                    }
                                    cout << "TRUE" << endl;
                                	return 0;
                                }
                                
                                • -1
                                  @ 2023-1-25 17:19:26
                                  #include <iostream>
                                  using namespace std;
                                  int main()
                                  {
                                      string s;
                                      cin>>s;
                                      bool flag=true;
                                      for(int i=s.length()-1;i>=0;i--)
                                      {
                                          if(!(s[i]==s[s.length()/2]))
                                          {
                                              flag=false;
                                          }
                                      }
                                      if(flag)
                                      {
                                          cout<<"TRUE";
                                      }
                                      else
                                      {
                                          cout<<"FALSE";
                                      }
                                      return 0;
                                  }
                                  
                                  • -2
                                    @ 2023-7-31 9:04:08

                                    话不多说,上代码!😄 `

                                    #include <iostream>
                                    using namespace std;
                                    int main()
                                    {
                                    string a,b,c;//定义3个字符串型变量
                                    cin >> a;//输入初始字符串
                                    for (int i = 0;i < a.length() - 1;i++)//因为最后一个要去除,所以是i < a.length() - 1
                                    {
                                    c += a[i];
                                    }//全部循环结束后,c就是去除最后一位的a
                                    for (int i = c.length() - 1;i >= 0;i--)//将顺序反过来输入
                                    {
                                    b += c[i];//从最后一位开始输入c的每一位
                                    }//全部循环结束后,b就是反过来的c
                                    if (c == b)//如果c反过来与c相同,那c就是回文数
                                    {
                                    cout << "TRUE";
                                    }
                                    else//否则不是
                                    {
                                    cout << "FALSE";
                                    }
                                    return 0;
                                    }
                                    

                                    喜欢的记得点个❤️

                                    【入门】判断是否构成回文

                                    信息

                                    ID
                                    99
                                    时间
                                    1000ms
                                    内存
                                    16MiB
                                    难度
                                    4
                                    标签
                                    递交数
                                    2318
                                    已通过
                                    1089
                                    上传者