查找第一次只出现一次的字符
来源:互联网 发布:希尔排序算法流程图 编辑:程序博客网 时间:2024/05/24 01:39
这是早些年Google的一道笔试题:
给定一个字符串,查找其中第一个只出现一次的字符。
看起来是一道非常简单的题,但要提升它的效率就不那么容易想到了。下面介绍一种时间复杂度比较小的解法:
用数组实现一个建议的哈希表,其下标作为字符的映射,然后遍历一遍给定的字符串,记录对应字符出现的次数。然后以此以字符串中的字符做小标遍历一遍哈希表,返回第一个 1 的下标就好了。
具体实现请看:
#include <stdio.h>#include <assert.h>int find_first_appear_once(const char *str){char hash[256] = {0};char *tmp = (char *)str;assert(str);while ('\0' != *tmp){hash[*tmp]++;tmp++;} while ('\0' != *str){if (1 == hash[*str]){break;}elsestr++;}return *str;}int main(){char arr[10] = "abcedabc";int ret = find_first_appear_once(arr);printf("%c\n", ret);return 0;}
1 0
- 查找第一次只出现一次的字符
- 字符串查找:(第一次)&&(只出现一次的字符)
- 哈希表初识--查找第一次只出现一次的字符
- 第一次只出现一次的字符
- 第一次只出现一次的字符
- 查出第一次只出现一次的字符
- 第一次只出现一次的字符
- 第一次只出现一次的字符
- 第一次只出现一次的字符
- 第一次只出现一次的字符
- 第一次只出现一次的字符
- 第一次只出现一次的字符
- 第一次只出现一次的字符
- 第一次只出现一次的字符
- 字符串中第一次出现的只出现一次的字符
- 第一次只出现一次的字符/删除指定字符
- 查找字符串中出现一次且第一次出现的字符
- 统计一个字符串中第一次只出现一次的字符
- Node.js回调概念
- Linux进程与线程的区别
- listview的某个item点击显示或隐藏的错乱问题解决方法
- js document.body.scrollTop的用法
- 《python+opencv学习》一、Gui Features in Opencv(1)读入、保存图片
- 查找第一次只出现一次的字符
- Node.js npm
- Android中的contentProvider
- 【川藏线全程23天骑行攻略!路线+住宿+建议等等等】
- 笔试题37. LeetCode OJ (24)
- jquery ajax实例
- hdu 2669 Romantic 扩展欧几里得
- 设计模式之结构型模式(待完成)
- VituralBox无法桥接问题解决办法