1 条题解
-
0
C :
#include<stdio.h> char a[200]; int pan(int a,int b); int main() { scanf("%s",a); int x=0; for(;a[x]!='\0';x++); int ans=x; while(pan(0,x-1)) { ans/=2; x/=2; } printf("%d",ans); return 0; } int pan(int m,int n) { int mid=(m+n)/2; for(int i=m;i<=mid;i++) if(a[i]!=a[n-i]) return 0; return 1; }C++ :
#include <iostream> #include <cstring> using namespace std; //判断是否回文 bool huiwen(char s[]){ bool f = true; int i; for (i = 0;i < strlen(s) / 2;i++){ if (s[i] != s[strlen(s) - i - 1]){ f = false; break; } } return f; } int main(){ char s[2000]; gets(s); int i; while (huiwen(s) && strlen(s) % 2 == 0){ s[strlen(s) / 2] = '\0'; } cout<<strlen(s)<<endl; }Pascal :
var str:string; b,i,x,c:longint; begin read(str); b:=length(str); while b mod 2=0 do begin c:=b; for i:=1 to b do if str[i]<>str[c-i+1] then begin x:=1;break;end; if x=1 then break else b:=b div 2; end; write(b); end.Java :
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); while(str.substring(0, str.length()/2).equals(str.substring(str.length()/2,str.length())) ){ str = str.substring(0, str.length()/2); } String str1 = str.substring(0, str.length()/2); System.out.println(str1.length()); } }Python :
def huiwen(b): if b==b[::-1]: return 1 else: return 0 str1=input() while(huiwen(str1)): b=len(str1) str1=str1[0:int(b//2)] print(len(str1))
- 1
信息
- ID
- 129
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者