890. Find and Replace Patternjava
題目大意:從字符串數組中找到類型匹配的如xyy,xxxshell
思路:數組
舉例:words = ["abc","deq","mee","aqq","dkd","ccc"], pattern = "abb" abb -> 011 abc -> 012 deq -> 012 mee -> 011 匹配 aqq -> 011 匹配 dkd -> 010 ccc -> 000
Java實現:code
public List<String> findAndReplacePattern(String[] words, String pattern) { int[] patternPos = getStrPos(pattern); List<String> retList = new ArrayList<>(); for (String word : words) { if (Arrays.equals(getStrPos(word), patternPos)) retList.add(word); } return retList; } private int[] getStrPos(String str) { Map<Character, Integer> posMap = new HashMap<>(); char[] arr = str.toCharArray(); int[] posArr = new int[arr.length]; for (int i = 0; i < arr.length; i++) { if (posMap.get(arr[i]) == null) { posMap.put(arr[i], i); } posArr[i] = posMap.get(arr[i]); } return posArr; }