剑指offer之面试题35第一次只出现一次的字符

雨点打透心脏的1/2处 2022-07-24 04:04 150阅读 0赞

问题描述

在字符串中找到第一个只出现一次的字符。

例如:

输入”abaccdeff”,则输出’b’。

实现代码如下:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdbool.h>
  4. #include <limits.h>
  5. #include<String.h>
  6. char find(char *ch,int n){
  7. int hashTable[256]={
  8. 0
  9. };
  10. int i;
  11. for(i=0;i<n;i++){
  12. int positoin= ch[i]%256;
  13. hashTable[positoin]++;
  14. }
  15. for(i=0;i<256;i++){
  16. if(hashTable[i]==1){
  17. return i;
  18. }
  19. }
  20. return ' ';
  21. }
  22. int main(int argc, char *argv[])
  23. {
  24. char ch[]="qazwsxqz";
  25. int n = strlen(ch);
  26. char c = find(ch,n);
  27. printf("%c\n",c);
  28. return 0;
  29. }

上面算法的时间复杂度为O(n)。

参考资料
剑指offer

备注
转载请注明出处:http://blog.csdn.net/wsyw126/article/details/51383831
作者:WSYW126

发表评论

表情:
评论列表 (有 0 条评论,150人围观)

还没有评论,来说两句吧...

相关阅读