문자열에서 찾기 및 바꾸기
s
을 수행해야 하는 인덱스가 0인 문자열k
이 제공됩니다. 대체 작업은 인덱스가 0인 세 개의 병렬 배열(indices
, sources
및 targets
)로 제공되며 모두 길이는 k
입니다.ith
교체 작업을 완료하려면:sources[i]
이 원래 문자열indices[i]
의 인덱스s
에 있는지 확인합니다. targets[i]
로 바꿉니다. 예를 들어,
s = "abcd"
, indices[i] = 0
, sources[i] = "ab"
및 targets[i] = "eee"
인 경우 이 교체의 결과는 "eeecd"
입니다.모든 교체 작업은 동시에 발생해야 합니다. 즉, 교체 작업이 서로의 인덱싱에 영향을 주지 않아야 합니다. 교체가 겹치지 않도록 테스트 케이스가 생성됩니다.
s = "abc"
, indices = [0, 1]
및 sources = ["ab","bc"]
가 포함된 테스트 사례는 "ab"
및 "bc"
교체가 겹치기 때문에 생성되지 않습니다. s
에서 모든 교체 작업을 수행한 후 결과 문자열을 반환합니다.하위 문자열은 문자열에서 연속적인 문자 시퀀스입니다.
예 1:
입력: s = "abcd", 인덱스 = [0, 2], 소스 = ["a", "cd"], 대상 = ["eee", "ffff"]
출력: "eeebffff"
설명:
"a"는 s의 인덱스 0에서 발생하므로 "eee"로 바꿉니다.
"cd"는 s의 인덱스 2에서 발생하므로 "ffff"로 대체합니다.
예 2:
입력: s = "abcd", 인덱스 = [0, 2], 소스 = ["ab","ec"], 대상 = ["eee","ffff"]
출력: "eeecd"
설명:
"ab"는 s의 인덱스 0에서 발생하므로 "eee"로 대체합니다.
"ec"는 s의 인덱스 2에서 발생하지 않으므로 아무것도 하지 않습니다.
제약:
1 <= s.length <= 1000
k == indices.length == sources.length == targets.length
1 <= k <= 100
0 <= indexes[i] < s.length
1 <= sources[i].length, targets[i].length <= 50
s
는 영문 소문자로만 구성되어 있습니다. sources[i]
및 targets[i]
는 영문 소문자로만 구성됩니다. 해결책:
class Solution:
def findReplaceString(self, s: str, indices: List[int], sources: List[str], targets: List[str]) -> str:
n = len(indices)
op = list(s)
for i in range(n):
if s[indices[i]:indices[i]+len(sources[i])] == sources[i]:
op[indices[i]] = targets[i]
for j in range(indices[i] + 1, indices[i] + len(sources[i])):
op[j] = ""
return "".join(op)
Reference
이 문제에 관하여(문자열에서 찾기 및 바꾸기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/theabbie/find-and-replace-in-string-46oa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)