이 튜토리얼에서는 주어진 두 문자열 사이의 차이점을 찾기 위해 Python 프로그램을 작성합니다. 이 문제는 면접에서 물어볼 수 있습니다. 문제 설명을 이해한 다음 해결책에 접근하겠습니다.
문제 설명 -
두 개의 문자열이 주어졌습니다. 에스 그리고 티. 문자열 t는 문자열 s를 무작위로 섞은 후 임의의 위치에 문자를 하나 더 추가하여 생성됩니다. 우리는 다음에 추가된 문자를 반환하는 Python 프로그램을 작성해야 합니다. 티.
예 -
Input: s = 'zxyc', t = 'zxyce' Output: 'e' Explanation: 'e' is the letter that was added.
예 -
Input: s = 'uvw', t = 'wyu' Output: 'y' Explanation: 'e' is the letter that was added.
제약:
다음 제약 조건을 따라야 합니다.
파워셸과 배쉬
- 0<= s.length <='1000</li'>
- t.길이 == s.길이 + 1
- s와 t는 영문 소문자로 구성됩니다. =>
파이썬 프로그램
다음 Python 프로그램을 이해해 봅시다.
예 -
class Solution(object): def findTheDifference(self, s, t): ls_s = [s[i] for i in range(len(s))] ls_t = [t[i] for i in range(len(t))] for elem in ls_s: ls_t.remove(elem) return(ls_t[0]) obj = Solution() s = 'zxyc' t = 'zxyce' print(obj.findTheDifference(s, t)
산출:
Java에서 int를 문자열로 변환
'e'
설명 -
위 코드에서는 두 개의 문자열을 인수로 사용하는 findThedifference() 함수를 정의했습니다. 우리는 문자열을 목록으로 변환하기 위해 목록 이해를 사용했습니다. 이제 우리는 반복합니다 ls_s 목록에서 단일 요소를 선택하고 해당 요소를 두 번째 목록에서 제거합니다. ls_t. 두 번째 요소에서 모든 요소가 제거되면 주어진 문자열이 모두 동일함을 의미하고, 그렇지 않으면 두 번째 목록의 첫 번째 요소를 반환합니다.
솔루션 - 2
문제의 또 다른 해결책을 살펴보겠습니다.
class Solution: def findTheDifference(self, s: str, t: str) -> str: #sort both the strings s_list = sorted(s) t_list = sorted(t) s_list.append(0) #to make the length equal else we will get list index out of bounds (1 extra char in string2) for i in range(len(t_list)): if s_list[i] != t_list[i]: #if character at i not same for both the strings, we get our answer return t_list[i] obj = Solution() s = 'zxyc' t = 'zxyce' print(obj.findTheDifference(s, t)
산출:
e
설명 -
이 튜토리얼에서는 정렬() 문자열을 정렬된 방식으로 문자 목록으로 변환하는 메서드입니다. 두 개의 문자열 목록을 만들고 길이를 동일하게 만들기 위해 추가 요소를 0으로 추가했습니다. 그렇지 않으면 목록 인덱스가 범위를 벗어나게 됩니다. 이제 t_list를 반복하고 s_list 요소가 t_list와 동일하지 않습니다. 조건이 일치하면 해당 요소를 반환합니다.