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