Unique Word Abbreviation
给一个string数组, 让你一个方法, 可以判断缩写是不是unique, 这个缩写就是如果string大于3,则保留首字母,尾字母, 然后中间的省略为字母的个数.
用个hashset就可以了..
Map<String,Set<String>> maps = new HashMap<>(); public ValidWordAbbr(String[] d) { for(String s : d){ String a = abbr(s); Set<String> set = maps.containsKey(a) ? maps.get(a) : new HashSet<String>(); set.add(s); maps.put(a,set); } } public boolean isUnique(String w) { String a = abbr(w); return !maps.containsKey(a) || (maps.get(a).contains(w) && maps.get(a).size() == 1); } public String abbr(String s) { if (s.length() < 3) return s; return s.substring(0, 1) + String.valueOf(s.length() - 2) + s.substring(s.length() - 1); }
Leave A Comment