QR12. 统计字符
描述
输入描述
输入数据一个字符串,包括字母,数字,字符等。输出描述
输出首先出现三次的那个英文字符示例1
输入:
Have you ever gone shopping and
输出:
e
示例2
输入:
nowcoder@mail.com
输出:
o
Pascal 解法, 执行用时: 1ms, 内存消耗: 352KB, 提交时间: 2018-10-20
var a:array[-200..200]of longint; i,j,k,num:longint; s:ansistring; begin readln(s); for i:=1 to length(s) do begin j:=ord(s[i]); if((j>=65)and(j<=90))or((j>=97)and(j<=122))then inc(a[ord(s[i])-ord('A')]); if a[ord(s[i])-ord('A')]>=3 then begin write(s[i]); halt; end; end; end.
C 解法, 执行用时: 1ms, 内存消耗: 352KB, 提交时间: 2018-09-12
#include<stdio.h> #include<string.h> int main() { int a[1000],i,j; char s[1000]; while(gets(s)) { memset(a,0,sizeof(a)); for(i=0;s[i]!='\0';i++) if((s[i]>='0'&&s[i]<='9'||(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z'))&&++a[s[i]]==3) {printf("%c",s[i]);break;} } }
C 解法, 执行用时: 1ms, 内存消耗: 364KB, 提交时间: 2018-09-06
#include<stdio.h> #include<string.h> int main() { char a[1000]; gets(a); int* p = malloc(52*sizeof(int)); memset(p, 0, 52 * sizeof(int)); for (int i = 0; a[i]!='\0'; i++) { if (a[i] >= 65 && a[i] <= 90) { p[a[i] - 65]++; if (p[a[i] - 65] == 3) { printf("%c", a[i]); break; } } else if (a[i] >= 97 && a[i] <= 122) { p[a[i] - 97 + 26]++; if (p[a[i] - 97 + 26] == 3) { printf("%c", a[i]); break; } } } free(p); return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 372KB, 提交时间: 2020-11-16
#include <stdio.h> #include <string.h> #define MAXLEN 1000 #define MAX 255 char solve(char *pstr) { int count[MAX]; for (int i=0;i<MAX;i++) count[i]=0; for (int i=0;pstr[i]!='\0';i++) { if ((pstr[i]>='a' && pstr[i]<='z') || (pstr[i]>='A' && pstr[i]<='Z')) { count[pstr[i]]++; if (count[pstr[i]]==3) return pstr[i]; } } return 0; } int main() { char str[MAXLEN]; gets(str); printf("%c",solve(str)); return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 372KB, 提交时间: 2018-08-07
#include<stdio.h> #include<string.h> main() { int a[1000],i,j; char s[1000]; while(gets(s)) { memset(a,0,sizeof(a)); for(i=0;s[i]!='\0';i++) if((s[i]>='0'&&s[i]<='9'||(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z'))&&++a[s[i]]==3) {printf("%c",s[i]);break;} } }