字符串的最小包含子串

问题 给定字符串str1,str2,获取字符串str1中包含str2的最小字符子串。 str1=“abcde”, str2=“bd” -> bcd str1=“abcde”, str2=“cg” -> “” 思路 假定字符编码范围0~255 创建一个size为256的整形数组charCount,用来保存字符串str2所有字符的出现次数 整形变量match用来表示当前差几个字符未匹配 将str1、str2分

判断两个单词是否为变形词

问题 给定两个单词word1,word2,判断两个单词是否是变形词,即两个单词中的每个字符出现的次数一致。 word1=“abcc”, word=“acbc”, 返回true word1=“abcc”, word=“abbc”, 返回false word1=“abc”, word=“cba”, 返回true 思路 假定字符串的编码范围0~255。 新建一个size为256的int数组 分别将单词word1、word2转换为对应的字符数组word1C

寻找字符串中不重复最长子串

问题 给定一个字符串,找出这个字符串中最长的不重复子串。假定字符串编码范围在256之内(排除中文等特殊字符),同时如果有相同长度的子串,优先获取首次寻找的子串,时间复杂度O(N)。 “abcd” -> “abcd” “abccd” -> “abc” “somok39ebab3yuvwz123” -> “ab3yuvwz12” 思路 用一个int数组position保存每个字符在字符串中的位置 用一个int变量mark标记下