转载请注明出处:http://blog.csdn.net/ns_code/article/details/27110873 剑指offer上的字符串相关题目. 题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符.比如.输入"They are students."和"aeiou",则删除之后的第一个字符串变成"Thy r stdnts.". 这里主要要分析两个方面: 1.怎样推断那些字符是须要删除的字符. 同非常多字符串问题一样.能够…
/* 题目: 给定不含重复字符字符串的全组合. */ /* 思路: 递归法. 例给定abc,输出的组合长度为1,2,3. 对于长度为2的组合,分选择a(ab,ac)和不选择a的情况(bc). 选择a,则在剩余字符串中选择长度为1的字符组合: 不选择a,则在剩余字符串中选择长度为2的字符组合. */ #include<iostream> #include<stdio.h> #include<string> using namespace std; string curr;…
问题1:字符串中第一个不重复的字符 题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出前六个字符"google"时,第一个只出现一次的字符是"l". 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符. 解题思路:遍历字符串,用map保存每个字符出现的次数,map的key-value分别是字符-字符出现的次数…
题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l".如果当前字符流没有存在出现一次的字符,返回#字符. 思路 和前面的那道字符串中只出现一次的字符相似而不相同,前面那道是固定长度字符串,而本题是字符流,也就是会增长的,每次字符串多一个字符,就要重新判断是哪个只出现一次的…
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度.假设字符串中只包含从'a'到'z'的字符. 思路 动态规划法:定义函数f(i)为:以第i个字符为结尾的不含重复字符的子字符串的最大长度. (1)当第i个字符之前未出现过,则有:f(i)=f(i-1)+1 (2)当第i个字符之前出现过,记该字符与上次出现的位置距离为d 1)如果d<=f(i-1…
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 在字符串中找出第一个只出现一次的字符.如输入"abaccdeff",则输出'b'. 思路 创建哈希表,键值key为字符,值value为出现次数.第一遍扫描:对每个扫描到的字符的次数加一:第二遍扫描:对每个扫描到的字符通过哈希表查询次数,第一个次数为1的字符即为符合要求的输出. 由于字符(char)是长度为8的数据类型,共有256中可能,因此哈希表可以用一…
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是'g'.当从该字符流中读出前六个字符"google"时,第一个只出现一次的字符是'l'. 思路 字符只能一个一个从字符流中读出来,因此要定义一个容器来保存字符以及其在字符流中的位置. 为尽可能搞笑解决问题,要在O…
剑指Offer - 九度1283 - 第一个只出现一次的字符2013-11-21 21:13 题目描述: 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符. 输入: 输入有多组数据每一组输入一个字符串. 输出: 输出第一个只出现一次的字符下标,没有只出现一次的字符则输出-1. 样例输入: ABACCDEFF AA 样例输出: 1 -1 题意分析: 题目要求给定一个大写字母的字符串,找出第一个只出现了一次的字符的下标,从0开始. 由于ascii字符不…
剑指Offer(三十四):第一个只出现一次的字符 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net/baidu_31657889/ github:https://github.com/aimi-cn/AILearners 一.引子 这个系列是我在牛客网上刷<剑指Offer>的刷题笔记,旨在提升下自己的算法能力. 查看完整的剑指Offer算法题解析请点击CSDN和github链接: 剑指Offe…
该题目来源于牛客网<剑指offer>专题. 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写) Go语言实现: func firstUniqChar(s string) int { //假设都是大小写字母,定义一个数组 list := [52]int{} //算出每个字符出现的次数 for _, x := range s { list[x-'a']++ } //算出首次出现且次数为1的…