在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
来源:互联网 发布:js的观察者模式 编辑:程序博客网 时间:2024/05/18 12:29
法1:
如果要知道一个字符是否只出现过一次,必须遍历一次字符串知道所有字符出现过的情况。在遍历中要用数组统计每个字符的出现次数,到最后将,再遍历一遍数组,得到出现次数为1的第一个字符,取出。
空间复杂度:O(1)
时间复杂度:O(n)
我们创建一个长度为256的数组,每个字母根据其ASCII码值作为数组的下标对应数组的对应项,而数组中存储的是每个字符对应的次数。这样我们就创建了一个大小为256,以字符ASCII码为键值的哈希表。(并不仅限于英文字符,所以这里要考虑256种可能)。
我们第一遍扫描这个数组时,每碰到一个字符,在哈希表中找到对应的项并把出现的次数增加一次。这样在进行第二次扫描时,就能直接从哈希表中得到每个字符出现的次数了。然后找到只出现一次的字符
法2:
看到这道题时,最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字符。如果字符串有n个字符,每个字符可能与后面的O(n)个字符相比较,因此这种思路时间复杂度是O(n2)。我们试着去找一个更快的方法。
由
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b;
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
- No17、题目:在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b。
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
- 算法十二:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b.
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
- Java:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
- C语言里面的内联函数(inline)与宏定义(#define)探讨
- 如何让google搜索的时候下雪
- 远程桌面连接,“由于这台计算机没有终端服务器客户端访问许可证,远程会话被中断”的一个解决办法
- NightWatchMan
- Xenomai quick build quide
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
- JavaScript canvas支持
- linux命令--time
- SharePoint 2010 应用自定义aspx页面调换列表默认的新建(NewForm.aspx),查看(DispFo...
- 关于CopyU!v2与Windows 7兼容性问题的报告
- VBA 重複項目チェックツール作成(二)
- 喝牛奶的健康法则
- 据说看完这21个故事的人,30岁前都成了亿万富翁。你是下一个吗?
- Excel多条件求和 & SUMPRODUCT函数用法详解