题目描述: 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)。 解题思路: 对于本题,这里给出以下三种解法:(1)用 HashMap 建立每个字符与其出现次数的映射 ...
一 题目:第一个只出现一次的字符 题目:在字符串中找出第一个只出现一次的字符。如输入 abaccdeff ,则输出 b 。要求时间复杂度为O n 。 最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字符。如果字符串有n个字符,每个字符可能与后面的O n 个字符相比较,因此这种思路的时间复杂度是 ...
2015-09-14 23:07 38 9371 推荐指数:
题目描述: 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)。 解题思路: 对于本题,这里给出以下三种解法:(1)用 HashMap 建立每个字符与其出现次数的映射 ...
题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写) 思路 遍历字符串,找到那个第一个count计数为1的值,返回它的下标值。。 解答 ...
本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是'g'。当从该字符流中读出前六个字符"google ...
本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出'b'。 思路 创建哈希表,键值key为字符,值value为出现次数。第一遍扫描:对每个扫描 ...
题目: 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 思路: 字符流:像流水一样的字符,一去不复返,意味着只能访问一次 ...
方法1: 看到这个题目,最直观的想法就是就是遍历法,也就是从头开始取字符串中的一个字符,将其与其后的所有字符比较,如果有相同的字符,那么就证明它不是只出现一次的字符。当第一次出现遍历完其后字符并且没有重复时,表明这个字符就是“第一个只出现一次的字符”。如果字符串有n个字符,每个字符 ...
样例:比如“abcdabc”,第一个只出现一次的字符为d,位置为3 解决方案1:O(n*n)的复杂度 遍历字符串中的每个字符,然后用该字符在字符串中进行查找,如果没有找到和当前字符相同的字符。则当前字符为第一个 只出现一次的字符。 解决方案2:O(n)的复杂度 采取空间换 ...
一、题目:两个链表的第一个公共节点 题目:输入两个链表,找出它们的第一个公共结点。 链表结点定义如下,这里使用C#语言描述: 二、解题思路 2.1 蛮力法 碰到这道题,很多人的第一反应就是蛮力法:在第一链表上顺序遍历每个结点,每遍历到一个结点 ...