题目地址 方法一: 两个方向优化时间: strlen() 一次性算出来,不要在循环中多次计算 从前往后遍历时,如果a[i ]== a[j],可以令a[j ] = '*' ,特殊字符作为标志,这样,如果后面的循环中遇到 a[i] = '*' 【外层循环 ...
描述 给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。 输入一个字符串,长度小于 。输出输出第一个仅出现一次的字符,若没有则输出no。样例输入 样例输出 上面这个更看得懂 这个就看不懂了 最后是我自己的,到现在也没知道是哪错了 ...
2016-05-14 17:31 1 7319 推荐指数:
题目地址 方法一: 两个方向优化时间: strlen() 一次性算出来,不要在循环中多次计算 从前往后遍历时,如果a[i ]== a[j],可以令a[j ] = '*' ,特殊字符作为标志,这样,如果后面的循环中遇到 a[i] = '*' 【外层循环 ...
思路:利用ASCII 的编码, 1,一次遍历得到所有字符的下标对应出现的次数 2,遍历结果,找出第一次只出现一次的字符 3,此算法的时间复杂度为O(n) ...
要求: 1. 不能依赖库函数直接实现此功能,需使用基础的数据结构实现 2. 时间复杂度 O(n) 思路: 1. 用字典存储每个字符在字符串中出现的次数 2. 列表是有序的,用来存储字符的出现先后 3. 最后,从前向后遍历列表,找出第一个出现次数为1的字符,即为符合 ...
第 17 题(字符串):题目:在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b。 思路:此题非常容易。 最开始是想开辟一块空间存储每个字符出现的次数。 但转念一想,似乎没有必要。 对每一个字符,都依次和后面的比较,若出现了两次,则检查下一个字符,遇到只出现 ...
题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 分析:这道题是2006年google的一道笔试题。 看到这道题时,最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符 ...
样例:比如“abcdabc”,第一个只出现一次的字符为d,位置为3 解决方案1:O(n*n)的复杂度 遍历字符串中的每个字符,然后用该字符在字符串中进行查找,如果没有找到和当前字符相同的字符。则当前字符为第一个 只出现一次的字符。 解决方案2:O(n)的复杂度 采取空间换 ...
本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出'b'。 思路 创建哈希表,键值key为字符,值value为出现次数。第一遍扫描:对每个扫描 ...
这是《剑指offer》中的一道关于字符串的面试题: 对于一个普通人来说,拿到这个题最先想到的方法估计就是遍历整个字符串,用访问到得字符和其他字符进行比较,咦,如果遇到一个没有和他一样的其他字符,那么我们就返回这个字符。但是这种方法的时间复杂度是o(n2 ...