字符串S和 T 只包含小寫字符。在S中眠寿,所有字符只會(huì)出現(xiàn)一次躬翁。
S 已經(jīng)根據(jù)某種規(guī)則進(jìn)行了排序。我們要根據(jù)S中的字符順序?qū)進(jìn)行排序盯拱。更具體地說(shuō)盒发,如果S中x在y之前出現(xiàn),那么返回的字符串中x也應(yīng)出現(xiàn)在y之前狡逢。
返回任意一種符合條件的字符串T宁舰。
示例:
輸入:
S = "cba"
T = "abcd"
輸出: "cbad"
解釋:
S中出現(xiàn)了字符 "a", "b", "c", 所以 "a", "b", "c" 的順序應(yīng)該是 "c", "b", "a".
由于 "d" 沒有在S中出現(xiàn), 它可以放在T的任意位置. "dcba", "cdba", "cbda" 都是合法的輸出。
注意:
S的最大長(zhǎng)度為26奢浑,其中沒有重復(fù)的字符明吩。
T的最大長(zhǎng)度為200。
S和T只包含小寫字符殷费。
解題思路:
我們可以先遍歷一遍字符串T,遇到?jīng)]有在S中出現(xiàn)的字符低葫,由于不需要考慮它們的順序详羡,那就直接加到結(jié)果字符串里面。遇到S中有的字符嘿悬,我們需要記錄它出現(xiàn)的次數(shù)实柠,可以用一個(gè)字典來(lái)保存這個(gè)計(jì)數(shù)。遍歷完后善涨,我們需要遍歷字符串S窒盐,找出字典中每個(gè)字符出現(xiàn)的次數(shù)草则,按照S遍歷的前后順序把字符乘以次數(shù)添加到結(jié)果中去⌒防欤總的來(lái)說(shuō)很簡(jiǎn)單炕横,看一遍代碼就能理解了。
代碼如下:
def customSortString(self, S, T):
"""
:type S: str
:type T: str
:rtype: str
"""
dic = {c:0 for c in S}
res = ''
for i in T:
if i in S:
dic[i]+=1
else:
res+=i
for i in S:
res+=i*dic[i]
return res