QY4. 删除重复字符
描述
牛牛有一个由小写字母组成的字符串s,在s中可能有一些字母重复出现。比如在"banana"中,字母'a'和字母'n'分别出现了三次和两次。输入描述
输入包括一个字符串s,s的长度length(1 ≤ length ≤ 1000),s中的每个字符都是小写的英文字母('a' - 'z')输出描述
输出一个字符串,表示满足牛牛要求的字符串示例1
输入:
banana
输出:
ban
C 解法, 执行用时: 1ms, 内存消耗: 376KB, 提交时间: 2020-08-08
#include "stdio.h" #include "string.h" int main(int argc, char **argv) { char letter_valid[32] = {0}; char s[1000]; char ascii_a = 0x61; char out[100]={0}; int i,j; scanf("%s",s); for(i=0,j=0;s[i];i++) { if(letter_valid[s[i]-ascii_a] == 0) { out[j++] = s[i]; letter_valid[s[i]-ascii_a] = 1; } } printf("%s",out); return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 376KB, 提交时间: 2019-04-10
#include<stdio.h> #include<stdlib.h> #define LEN 1000 int main(){ /* int i,j = 0; int n = 0; char s[LEN]; char a[1000] = {0}; n = gets(s); // getchar(); for(i=0;s[i];i++) { a[s[i]]++; if(a[s[i]]==1) printf("%c",s[i]); } return 0; */ int a[256]={0},i; char s[1000]; gets(s); for(i=0;s[i];i++) { a[s[i]]++; if(a[s[i]]==1) printf("%c",s[i]); } return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 232KB, 提交时间: 2019-02-07
#include<stdio.h> #include<string.h> int main(){ char string[1000]; char first_show[1000]; scanf("%s", &string); int length1 = strlen(string); int length2 = 0; for(int i = 0;i < length1;i++){ int flag = 1; for(int j = 0; j < length2;j++){ if(string[i] == first_show[j]){ flag = 0; break; } else flag = 1; } if(flag == 1){ first_show[length2] = string[i]; length2++; } } for(int i = 0;i < length2;i++){ printf("%c", first_show[i]); } return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 236KB, 提交时间: 2019-02-01
#include<stdio.h> #include<string.h> int main(void) { int a[256]={0},i; char s[1000]; gets(s); for(i=0;s[i];i++) { a[s[i]]++; if(a[s[i]]==1) printf("%c",s[i]); } return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 308KB, 提交时间: 2021-09-10
#include <stdio.h> #include <string.h> int main() { char s[1010]; while(scanf("%s",s)!=EOF) { int arr[26]={0}; for(int i=0;i<strlen(s);i++) arr[(int)s[i]-97]=1; for(int i=0;i<strlen(s);i++) { if(arr[(int)s[i]-97]!=0) { printf("%c",s[i]); arr[(int)s[i]-97]=0; } } printf("\n"); } return 0; }