Question
Solution
题目大意:给你字符的顺序,让你排序另一个字符串。
思路:
输入参数如下:S = "cba"T = "abcd"先构造一个map,sMapkey存储S中出现的字符,value存储字符在S中的位置c -> 0b -> 1a -> 2再构造一个int数组,sIdxsIdx,存储S中的字符在T字符串中出现的次数遍历T字符串如果字符在sMap中,sIdx就加1如果不存在,就直接加入到返回字符串最后遍历sIdx数组,将S中的字符加入到返回字符串
Java实现:
public String customSortString(String S, String T) { MapsMap = new HashMap<>(); int[] sIdx = new int[S.length()]; for (int i = 0; i < S.length(); i++) { sMap.put(S.charAt(i), i); sIdx[i] = 0; } String retStr = ""; for (char c : T.toCharArray()) { if(sMap.containsKey(c)) { sIdx[sMap.get(c)] += 1; continue; }; retStr += String.valueOf(c); } for (int i = 0; i < S.length(); i++) { while (sIdx[i]-- > 0) { retStr += S.charAt(i); } } return retStr;}