public boolean worldBreak(String s , Set<String> dict){
        if(dict.contains(s))
            return true;
        for (int i=1;i < s.length() ;i++ ) {
            if(!map.containsKey(s.substring(0,i))){
                map.put(s.substring(0,i),worldBreak(s.substring(0,i),dict));
            }
            if(!map.containsKey(s.substring(i,s.length()))){
                map.put(s.substring(i,s.length()),worldBreak(s.substring(i,s.length()),dict));
            }

            if(map.get(s.substring(0,i)) && map.get(s.substring(i,s.length())))
                return true;
        }
        return false;
    }