/ Vijos / 讨论 / 分享 /

错在哪?

#include<cstdio>
#include<cstring>
#include<string>
#include<stdio.h>
int main(){
//freopen("palindrome.in","r",stdin);
//freopen("palindrome.out","w",stdout);
char a[100];
int sum[100];
int uam=0,summax=0,summax2=0,cs=0,cs2=0,sum1=0,sum2=0;
int qsd[100];
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
memset(a,NULL,sizeof(a));
memset(sum,NULL,sizeof(sum));
gets(a);
uam=strlen(a);
if(uam%2==0){
for(int j=0;j<uam;j++){
sum[j]=a[j];
for(int k=0;k<j;k++){
if(sum[j]==sum[k]){
qsd[j]+=qsd[k];
qsd[k]=0;
}
}
}
for(int j=0;j<uam;j++){
if(qsd[j]>summax){
summax=qsd[j];
}
}
printf("%d",uam-summax);
}
if(uam%2!=0){
for(int j=0;j<uam;j++){
sum[j]=a[j];
for(int k=0;k<j;k++){
if(sum[j]==sum[k]){
qsd[j]+=qsd[k];
qsd[k]=0;
}
}
}
for(int j=0;j<uam;j++){
if(qsd[j]>summax){
summax=qsd[j];
}
if(qsd[j]>summax2&&summax!=summax){
summax2=qsd[j];
}
}
for(int j=0;j<uam;j++){
if(qsd[j]==summax){
sum1=sum[j];
}
if(qsd[j]==summax2){
sum2=sum[j];
}
}
for(int j=0;j<uam;j+=2){
if(sum[j]!=sum1){
sum[j]=sum1;
cs+=1;
}
}
for(int j=1;j<uam;j+=2){
if(sum[j]!=sum2){
sum[j]=sum2;
cs+=1;
}
}
cs2=uam-summax;
if(cs>cs2){
printf("%d",cs2);
}
if(cs2>cs){
printf("%d",cs);
}
}
}
return 0;
}
错了吗?求指出。

0 条评论

目前还没有评论...