Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 구분 기호 집합으로 구분된 단어를 반전시키는 프로그램

<시간/>

문자열과 구분 기호 집합이 있다고 가정하고 구분 기호의 상대적 순서가 변경되지 않아야 하는 동안 문자열의 단어를 반대로 해야 합니다.

따라서 입력이 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