zoukankan      html  css  js  c++  java
  • 编程基础之字符串——02找第一个只出现一次的字符

    描述

    给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。

    输入一个字符串,长度小于100000。输出输出第一个仅出现一次的字符,若没有则输出no。样例输入

    abcabd

    样例输出

    c
    自己做不出,但得到了两个别人的答案;
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 char a[100100];
     6 int main(){
     7     int i,j,k=0,l=0;
     8     gets(a);
     9     l=strlen(a);
    10     for(i=0;i<l;i++)
    11     {
    12         for(j=0;j<l;j++)
    13         if(a[i]==a[j]&&i!=j) 
    14         k=1;
    15         if(k==0) {cout<<a[i]; return 0;
    16         }
    17         k=0;
    18     }
    19     cout<<"no"; 
    20 }

    上面这个更看得懂!

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 int main()
     6 {
     7 char s[110000],b;
     8 int a[27]={0},k,q=0;
     9 gets(s);
    10 int w=strlen(s);
    11 for(int i=0;i<=w-1;++i)
    12 {k=s[i]-96;
    13 a[k]+=1;}
    14 for(int i=0;i<=w-1;++i)
    15 {k=s[i]-96; 
    16 if(a[k]==1) 
    17 {b=96+k;q=1;cout<<b;break;}}
    18 if(q==0) cout<<"no";
    19 return 0;
    20 }

    这个就看不懂了!最后是我自己的,到现在也没知道是哪错了!

     1 #include<stdio.h> 
     2 #include<string.h> 
     3 int t,i,j,flag,len; 
     4 char a[200000]; 
     5 int main() 
     6 { 
     7 
     8         gets(a); 
     9         len=strlen(a); 
    10         for(i=0;i<len-1;i++) 
    11         { 
    12             flag=1; 
    13             if(a[i]=='@') continue; //对于相同的,省略; 
    14             for(j=i+1;j<len;j++) //j=j+1;可以不用循环i之前的字母。 
    15                 if(a[i]==a[j]) 
    16                 { 
    17                     a[j]='@'; //相同字母做标记。 
    18                     flag=0; //不输出a[i]; 
    19                 } 
    20             if(flag==1) 
    21             { 
    22                 putchar(a[i]); 
    23                 break; 
    24             } 
    25         } 
    26     if(i==len-1)printf("no"); 
    27     return 0; 
    28 }
  • 相关阅读:
    Java 集合-Map集合嵌套 的遍历四种方式
    Java 集合-set集合,Map接口
    Java 集合 Collection
    Java中的各种转换
    Java 关于时间的类
    Java 中 String、StringBuffer、StringBuilder 类
    Java 构造函数,super,this,final,static
    Java 面向对象关键字
    ArrayList集合
    JAVA数组
  • 原文地址:https://www.cnblogs.com/hcyd/p/5492990.html
Copyright © 2011-2022 走看看