문자열과 구분 기호 집합이 있다고 가정하고 구분 기호의 상대적 순서가 변경되지 않아야 하는 동안 문자열의 단어를 반대로 해야 합니다.
따라서 입력이 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