题目要求我们找出字符串中第一个只出现一次的字符,如果不存在,就输出-1。输入是一个非空字符串,输出是一个字符或者-1。我们可以用一个数组来存储每个字符出现的次数,然后再遍历一遍字符串,找到第一个出现次数为1的字符,返回它。如果没有这样的字符,就返回-1。这种方法的时间复杂度是O(n),空间复杂度是O...
如果计数为1,则说明该字符是第一个仅出现一次的字符,立即返回该字符。 如果没有找到仅出现一次的字符,那么最后返回一个特定的标记字符 'no',表示没有出现次数只有一次的字符。 在main 函数中,我们首先读入输入的字符串 s。 然后,我们调用 findFirstUniqueChar 函数来查找第一个仅出现一次的字符,并将结果存储在变量...
C语言:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出'b' #include<stdio.h>charfirstsingle(char*arr){charasc[255]={0};inti=0;for(;arr[i]!='\0';i++){asc[arr[i]]++;}for(i=0;arr[i]!='\0';i++){if(asc[arr[i]]==1){returnarr[i];return'\0';}}}int...
在字符串中找出第一个只出现一次的字符。 如输入“abaccdeff”,则输出'b'。 这个题加一些要求维度只能为n 代码如下: #include<stdio.h>#include<assert.h>charFLetter(chararry[],intlen){intletterNumber[256]={0};inti=0;char*ch=arry;intline=0;assert(NULL!=arry);for(i=0;i<len-1;i++){lin...
char oneChar(char* str){ char deq[26]; //记录出现字符的顺序 unsigned int i = 0,j=0;unsigned char letter[26]; //统计字符出现的次数 memset(letter,0,26); //初始字符出现次数为0 while(*str!='\0'){ letter[*str-'a']++;if(letter[*str-'a']==1)deq[i++]=*str;st...
//找到字符串中只出现一次的那个字符 pHashKey = pString;while(*pHashKey != '\0'){ if(hashTable[*pHashKey] == 1)return *pHashKey;pHashKey++;} //如果这个字符串为空,或者字符串中的每个字符都至少出现两次 return 0;} int main(void){ char str[1000];printf("请输入字符串:"...
1voidfind(constchar*s)2{3intarray[256] = {0};4char* p =s;56//按顺序计数s中的每个字符7while(*p)8{9array[*p++]++;10}1112//找出只出现一次的第一个字符13while(*s && (array[*s] !=1))14{ 15s++; 16}17printf("%c\n",*s);18 } ...
找出字符串中第一个只出现一次的字符 https://www.nowcoder.com/practice/e896d0f82f1246a3aa7b232ce38029d4 #include <stdio.h>//不使用哈希表,利用strchar和strrcar得出 #include <string.h> int main() { char str[1000]; if( fgets(str,sizeof(str),stdin)!=NULL){ int len=strlen(str); char...
开一个int arr[26] 对应26个字母 全部初始化为-1 遍历字符串 对于下标i位置的字符c arr[c - 'a...