NC231877. 简单的字符串问题
描述
输入描述
一个只包含 'a' , 'b' , 'c' 三种字符的字符串。数据范围:字符串长度不小于2,且不超过100
输出描述
如果不存在长度超过1的回文子串,则输出-1。否则输出长度超过1的最短回文子串的长度。
示例1
输入:
abcca
输出:
2
说明:
“cc”即为其最短回文子串示例2
输入:
abcab
输出:
-1
C 解法, 执行用时: 3ms, 内存消耗: 288K, 提交时间: 2021-12-21 13:51:03
#include<stdio.h> int main() { char ch[105]; scanf("%s",ch); int i=0,n=strlen(ch),min=-1,c; if(ch[0]==ch[1]) min=2; for(i=0;i<n-2 && n>2;i++) { if(ch[i]==ch[i+1]) min=2; if(ch[i]==ch[i+2] && min!=2) min=3; } printf("%d",min); return 0; }
C++ 解法, 执行用时: 3ms, 内存消耗: 408K, 提交时间: 2022-01-16 19:49:07
#include<iostream> using namespace std; int main(){ string s; cin>>s; for(int i=1;i<s.size();i++) if(s[i]==s[i-1]) return cout<<2,0; for(int i=1;i<s.size();i++) if(s[i-1]==s[i+1]) return cout<<3,0; cout<<-1; }
pypy3 解法, 执行用时: 122ms, 内存消耗: 25936K, 提交时间: 2022-01-22 16:33:31
s=input() ss="" for i in range (len(s)-1): if(s[i]==s[i+1]): print('2') exit() for i in range (len(s)-2): if(s[i]==s[i+2]): print('3') exit() print('-1')
Python3 解法, 执行用时: 42ms, 内存消耗: 4652K, 提交时间: 2022-01-06 16:04:46
a = input() f = 0 f1 = 0 for i in range(1, len(a)): if a[i] == a[i - 1]: f = 1 if i + 1 < len(a) and a[i - 1] == a[i + 1]: f1 = 1 if f: print('2') elif f1: print('3') else : print('-1')