1 条题解
-
0
C :
int main(int argc, char* argv[]) {char st[101],s,i,j,k; int visit[101]; while(gets(st)) { for(i=0;i<101;i++) visit[i]=0; for(i=0;st[i]!='\0';i++) { k=0; if(visit[i]==0){ s=st[i];k=1; for(j=i+1;st[j]!='\0';j++) {if(st[j]==s) { if(k==1){printf("%c:%d",s,i);k=2;} printf(",%c:%d",st[j],j);visit[j]=1; } } if(k==2)puts(""); } } } return 0; }
C++ :
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char s[101]; int visit[101]= {0}; int i,j,len,flag; while((scanf("%s",s))!=EOF) { len = strlen(s);//len字符串的长度 for(i=0; i<101; i++) { visit[i]=0;//初始化 } for(i=0; i<len; i++) { if(visit[i]==0)//没有访问过 { flag=0;//flag=1表示后面还有该字符并且不是第一个遇到 for(j=i+1; j<len; j++)//遍历后面的字符 { if(s[i]==s[j]) { if(flag==1) { printf(",%c:%d",s[j],j); visit[j]=1; } else { printf("%c:%d,%c:%d",s[i],i,s[j],j);//遇到后面第一个相同字符 visit[i]=1; visit[j]=1; flag=1; } } } if(flag==1) printf("\n");//有重复字符的才要打印,没有的不打印 } } } return 0; }
Java :
import java.util.*; public class Main{ final static Scanner jin=new Scanner(System.in); public static void main(String args[]){ while(jin.hasNextLine()){ char c[]=jin.nextLine().toCharArray(); boolean b[]=new boolean[c.length]; Arrays.fill(b,false); for(int i=0;i<c.length;i++){ if(!b[i]){ int cnt=1; b[i]=true; boolean o=false; for(int j=i;j<c.length;j++){ if(c[j]==c[i]&&!b[j]){ if(!o){ System.out.print(c[i]+":"+i); o=true; } System.out.print(","+c[i]+":"+j); b[j]=true; } } if(o)System.out.println(); } } } } }
- 1
信息
- ID
- 1891
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者