1. 程式人生 > >02:找第一個只出現一次的字符

02:找第一個只出現一次的字符

math cnblogs 第一個 code ret sin for 長度 color

02:找第一個只出現一次的字符

總時間限制: 2017-07-1218:36:28
1000ms
內存限制:
65536kB
描述

給定一個只包含小寫字母的字符串,請你找到第一個僅出現一次的字符。如果沒有,輸出no。

輸入
一個字符串,長度小於100000。
輸出
輸出第一個僅出現一次的字符,若沒有則輸出no。
樣例輸入
abcabd
樣例輸出
c
錯誤答案:9分
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<math.h>
using namespace
std; char a[30][2]; string w; int main() { int i,n,k; char j=a; for(i=1;i<=26;i++) { a[i][1]=j; j++; } cin>>w; n=w.length(); for(i=0;i<n;i++) { for(k=1;k<=26;k++) { if(a[k][1]==w[i]) {a[k][2]++;continue; } } }
int f=0; for(i=1;i<=26;i++) { if(a[i][2]==1){f=1;cout<<a[i][1]<<endl;break;} } if(f==0) cout<<"no"<<endl; return 0; }


正確答案:
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
char a[100001];
int
b,c[100001]={0}; gets(a); b=strlen(a); for(int i=0;i<b;i++) { for(int j=0;j<b;j++) { if(a[i]!=a[j])c[i]++; } if(c[i]==b-1) { cout<<a[i];return 0; } } cout<<"no"; return 0; }

02:找第一個只出現一次的字符