咕噜咕噜哈里  

补一补昨天的作业

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     string s;
 8     cin>>s;
 9     int i,j ;
10     int left=0,right=0;
11     for(i=0;i< s.length();i++){        //第一个数和第二个比较
12         for(j=i+1;j< s.length();j++){     //第一个数和第三个比较
13             if(s[i]==s[j]){
14                 left=1;                    //特殊情况(如果没找到就输出第一个数)
15                 right=1;                 //判断是否是回文    
16                 break;
17         }
18         else{
19             left=0;
20         }
21     } 
22         if(right==1){
23             break;
24         }
25         if(left==1){                       //直接输出第一位
26             for(int k=i;k<=j;k++){       //i用来记住回文数的第一次出现的位置,j记住回文数
27                                          //最后出现的位置(如abbc,就会输出bb)
28                 cout<<s[k];
29         } 
30     }        
31         else{
32             cout<<s[0];
33         }
34     }
35         return 0;
36 }

 题目:

最长回文子串
 
给你一个字符串 s,找到 s 中最长的回文子串。
示例 1:
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:
输入:s = "cbbd"
输出:"bb"
示例 3:
输入:s =
"a"
输出:"a"
示例 4:
输入:s =
"ac"
输出:"a"
提示:
1
<= s.length <= 1000
s
仅由数字和英文字母(大写和/或小写)组成
posted on 2021-07-15 21:23  咕噜咕噜哈里  阅读(54)  评论(0编辑  收藏  举报