LeetCode—394. Decode String

来源:互联网 发布:sql设置默认值 编辑:程序博客网 时间:2024/04/28 00:15

Decode String思路:先遍历String,找到少于k的字母,然后以这些字母split字符串,再将字符串递归调用方法。


GitHub地址:https://github.com/corpsepiges/leetcode

点此进入如果可以的话,请点一下star,谢谢。




public class Solution {    public int longestSubstring(String s, int k) {        char[] cs=s.toCharArray();        Map<Character, Integer> map=new HashMap<Character, Integer>();        for (Character c:cs) {            map.put(c, map.get(c)==null?1:map.get(c)+1);        }        Set<Character> cSet=new HashSet<>();        for (Character c:map.keySet()) {            if (map.get(c)<k) {                cSet.add(c);            }        }        if (cSet.size()==0) {            return s.length();        }        Set<String> set=new HashSet<String>();        Set<String> newSet=new HashSet<String>();        set.add(s);        for (Character c:cSet) {            for (String test:set) {                String[] strs=test.split(String.valueOf(c));                for (String str:strs) {                    if (str.length()>0) {                        newSet.add(str);                    }                }            }            set.clear();            set.addAll(newSet);            newSet.clear();        }        int ans=0;        for (String test:set) {            int maxTest=longestSubstring(test,k);            if (maxTest>ans) {                ans=maxTest;            }        }        return ans;    }}


0 0
原创粉丝点击