#include <stdio.h>
#include<string.h>
int main() {
char word[1001];
scanf("%s",word);
int a[26];
int i=0;
for(i=0;i<26;i++){
a[i]=0;//计数数组初始化
}
for(i=0;i<strlen(word);i++){
a[word[i]-'a']++;//统计字母出现次数
}
for(i=0;i<strlen(word);i++){
if(a[word[i]-'a']==1){
printf("%c",word[i]);//一一比对出现次数,直到第一个出现次数为1
return 0;
}
}
printf("-1");
return 0;
} #include <stdio.h>
#include <string.h>
int main() {
char str[1000] = {0};
int char_num[26] = {0};
int char_flag = 0;
while (scanf("%s", str) != EOF) { // 注意 while 处理多个 case
// 64 位输出请用 printf("%lld") to
int len = strlen(str);
for (int i = 0; i < len; i++) {
char_num[str[i] - 'a']++;
}
for (int i = 0; i < len; i++) {
if (char_num[str[i] - 'a'] == 1) {
printf("%c", str[i]);
char_flag = 1;
break;
}
}
if (char_flag == 0) {
printf("-1");
}
}
return 0;
} #include <stdio.h>
#include <string.h>
int main() {
char str[1024];
int flag[26] = {0};
scanf("%s", str);
int len = strlen(str);
for(int i=0;i<len;i++){
flag[str[i] - 'a']++;
}
int i;
for(i=0;i<len;i++){
if(flag[ str[i] - 'a' ] == 1){
printf("%c\n", str[i]);
break;
}
}
if(i == len){
printf("-1\n");
}
return 0;
} #include <stdio.h>
#include <string.h>
int frist_str(char str[], int len)
{
int i = 0;
int haxh[26][2] = { 0 };
//记录出现次数和先后顺寻
for (i = 0; i < len; i++)
{
haxh[str[i] - 'a'][0]++;
if (haxh[str[i] - 'a'][0] == 1)//记录这个字母最先出现的序号
haxh[str[i] - 'a'][1] = i;
}
int min = 1000;//找出序号最小的
for (i = 0; i < 26; i++)
{
if (haxh[i][0] == 1)
{
if (haxh[i][1] < min)
min = haxh[i][1];
}
}
if (min == 1000)
return -1;
else
return min;
}
int main()
{
char str[1001] = { 0 };
scanf("%s", str);
int len = strlen(str);
int ret = frist_str(str, len);
if (ret !=-1)
printf("%c", str[ret]);
else
printf("-1");
return 0;
} #include <stdio.h>
#include <stdlib.h>
#include <memory.h>
int main() {
char example[52] = {"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
char* str = malloc(1000);
scanf("%s", str);
char stack[1000] = {0};
int flag = 0;
for(int i = 0;i<strlen(str);i++) {
for (int j = 0;j<strlen(stack);j++) {
if (str[i] == stack[j] ) {
stack[j] = '1';
flag = 1;
break;
}
}
if (flag == 0) {
int test = 0;
for (int M= 0;M<strlen(example);M++) {
if(example[M] == str[i]) {
test = 1;
example[M] = '1';
}
if (test ==1) {
stack[strlen(stack)] =str[i];
test=0;
}
}
} else {
stack[strlen(stack)] = '1';
}
flag = 0;
}
char* ptr = stack;
while (ptr!=NULL) {
if (*ptr == 0) {
printf("-1");
break;
}
if (*ptr!= '1'){
printf("%c",*ptr);
break;
}
ptr++;
}
return 0;
};
只要我的ifelse足够多,我的代码就不会报错 #include <stdio.h>
#include<string.h>
int main() {
int axi[30]={0},slen;
char str[1000];
gets(str);
slen=strlen(str);
for(int i=0;i<slen;i++){
axi[str[i]-92]=axi[str[i]-92]+1;
}
for(int i=0;i<slen;i++){
if(axi[str[i]-92]==1){
printf("%c",str[i]);
return 0;
}
}
printf("-1");
return 0;
}
//这个哪里有问题,我通过不了 #include <stdio.h>
#include <string.h>
int main() {
char str[1000],result;
int d[1000]={0};
int i,len,flag=0;
gets(str);
len=strlen(str);
for(i=0;i<len;i++)
{
d[str[i]]++;
}
for(i=0;i<len;i++)
{
if(d[str[i]==1])
{
flag=1;
printf("%c",str[i]);
return 0;
}
}
printf("-1");
return 0;
}哪里出错了???
#include <stdio.h>
#include <string.h>
int main() {
char str[1000] = {};
int count[26] = {0}; //记录26个字母出现的次数
scanf("%s", str);
int len = strlen(str);
for(int i=0; i<len; i++){
count[str[i]-'a']++;
}
for(int i=0; i<len; i++){
if(count[str[i]-'a'] == 1) //输出第一个只出现一次的字母
{
printf("%c", str[i]);
break;
}
if(i == len - 1) //如果没找到
printf("-1");
}
return 0;
} #include <stdio.h>
#include <string.h>
int main(){
int hash[128][2];
memset(hash,0,sizeof(hash));//建立所有字符串的哈希表,对应空格前面的ASCII值用不上
int i=0;char t;int n=128;int out=-1;
while(scanf("%c",&t)!=EOF){
if(!hash[t][0]){//第一列记录出现次序
hash[t][0]=++i;
}
hash[t][1]++;//第二列记录出现次数
}
for(int j=127;j>=' ';j--){//寻找最早出现一次的字符
if(hash[j][1]==1 && hash[j][0]>0){
if(n>hash[j][0]){
n=hash[j][0];
out=j;
}
}
}
if(out<0){
printf("-1");return 0;
}
printf("%c",out);
} #include <stdio.h>
int main()
{
char recv[1000];
scanf("%s",recv);
int len = strlen(recv);
int i,j;
int times;
for(i=0;i<len;i++)
{
times = 0;
for(j=0;j<len;j++)
{
if(i == j)
continue;
if(recv[i] == recv[j])
times++;
}
if(times == 0)
break;
}
if(times != 0)
printf("-1");
else
printf("%c",recv[i]);
} #include <stdio.h>
#define N 1000
typedef struct record
{
char ch;
int cnt;
}record;
int main()
{
char str[N];
record rec[N]={0};
int i=0,j=0,k;
gets(str);
while(str[i]!='\0')
{
if(!i)
{
rec[j].ch=str[i];
rec[j].cnt++;
j++;
}
else
{
for(k=0;k<j;k++)
{
if(str[i]==rec[k].ch)
{
rec[k].cnt++;
break;
}
}
if(k==j)
{
rec[j].ch=str[i];
rec[j].cnt++;
j++;
}
}
i++;
}
for(i=0;i<j;i++)
{
if(rec[i].cnt==1)
{
printf("%c\n",rec[i].ch);
break;
}
}
if(i==j)
printf("-1\n");
return 0;
} #include<stdio.h>
int main()
{
char a[1000];
int j=0;
int i=0;
int flag =0;
while(gets(a)!=NULL)
{ int flag =0;
for (i=0;i<strlen(a);i++)
{
for(j=0;j<strlen(a);j++)
{
if(i!=j)
{
if (a[i]==a[j])
{
flag =1;
break;
}
}
flag=0;
}
if(flag==0) break;
}
if(flag==0) printf("%c\n",a[i]);
else printf("-1\n");
}
} #include<stdio.h>
int main() {
char a[500];
while(gets(a)) {
char zifu[26] = {0};
int num[26] = {0};
for (int i = 0; i < strlen(a); i++) {
int j = 0;
for (j = 0; j < strlen(zifu); j++) {
if(a[i] == zifu[j]) {
num[j]++;
break;
}
}
if(j == strlen(zifu)) {
zifu[j] = a[i];
num[j]++;
}
}
int i = 0;
for (i = 0; i < 26; i++) {
if(num[i] == 1) {
printf("%c\n", zifu[i]);
break;
}
}
if(i == 26) {
printf("-1\n");
}
}
}