문자열과 구분 기호 집합이 있다고 가정하고 구분 기호의 상대적 순서가 변경되지 않아야 하는 동안 문자열의 단어를 반대로 해야 합니다.
따라서 입력이 s ="Computer/Network:Internet|tutorialspoint" delims =["/", ":", '|']인 경우 출력은 tutorialspoint/Internet:Network|Computer
가 됩니다.이 문제를 해결하기 위해 다음 단계를 따릅니다.
단어 :=새 목록
ans :=빈 문자열
temp :=지도
구분자를 제외한 단어를 분리하여 단어 배열에 삽입
문자가 구분 기호에 있을 때 단어를 분리한 다음 an에 추가,
그렇지 않으면 단어 배열에서 단어를 반대로 읽고 as
에 추가합니다.반환
더 나은 이해를 위해 다음 구현을 살펴보겠습니다.
예시
from itertools import groupby
class Solution:
def solve(self, sentence, delimiters):
words = []
ans = ""
for k, g in groupby(sentence, lambda x: x in delimiters):
if not k:
words.append("".join(g))
for k, g in groupby(sentence, lambda x: x in delimiters):
if k:
ans += "".join(g)
else:
ans += words.pop()
return ans
ob = Solution()
s = "Computer/Network:Internet|tutorialspoint"
delims = ["/", ":", '|']
print(ob.solve(s, delims)) 입력
"Computer/Network:Internet|tutorialspoint", ["/", ":", '|']
출력
tutorialspoint/Internet:Network|Computer