/**
* case:“edwardshi”,"edward","edwar","edwardshido"
*
* edwardshi
* edwardsh
* edwards
* edward
* edwar
* */public String longestCommonPrefix(String[] strs){if(strs==null||strs.length==0)return"";
String res=strs[0];//每次都在第i个字符串中找第一个字符串(res),如果找不到,就去掉res的最后一个字符,继续寻找,直到找到为止for(int i =1; i < strs.length; i++){while(strs[i].indexOf(res)!=0){//indexOf(s):返回s字符串在当前字符串首次出现的位置,若没有,返回-1
res=res.substring(0,res.length()-1);}}return res;}
7.剑指 Offer 48. 最长不含重复字符的子字符串
publicintlengthOfLongestSubstring(String s){
Set<Character> set =newHashSet<Character>();int left =0, right =0, res =0;while(right < s.length()){char c = s.charAt(right++);// 存在重复的字符,则移动左指针,直到滑动窗口中不含有该字符while(set.contains(c)){
set.remove(s.charAt(left++));}
set.add(c);
res = Math.max(res, right - left);}return res;}
8.剑指 Offer 50. 第一个只出现一次的字符
publiccharfirstUniqChar(String s){
Map<Character, Boolean> map =newHashMap<Character, Boolean>();char[] sc = s.toCharArray();for(char c : sc){
map.put(c,!map.containsKey(c));}for(char c : sc){if(map.get(c)){return c;}}return' ';}