791. Custom Sort String - LeetCode
Posted okokabcd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了791. Custom Sort String - LeetCode相关的知识,希望对你有一定的参考价值。
Question
Solution
题目大意:给你字符的顺序,让你排序另一个字符串。
思路:
输入参数如下:
S = "cba"
T = "abcd"
先构造一个map,sMap
key存储S中出现的字符,value存储字符在S中的位置
c -> 0
b -> 1
a -> 2
再构造一个int数组,sIdx
sIdx,存储S中的字符在T字符串中出现的次数
遍历T字符串
如果字符在sMap中,sIdx就加1
如果不存在,就直接加入到返回字符串
最后遍历sIdx数组,将S中的字符加入到返回字符串
Java实现:
public String customSortString(String S, String T) {
Map<Character, Integer> sMap = 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;
}
以上是关于791. Custom Sort String - LeetCode的主要内容,如果未能解决你的问题,请参考以下文章
[leetcode-791-Custom Sort String]
791. Custom Sort String - LeetCode