1 条题解

  • 0
    @ 2025-4-12 21:50:59

    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
    上传者