Leetcode Java Isomorphic Strings
업데이트:
문제
코드
class Solution {
public boolean isIsomorphic(String s, String t) {
int[] sm = new int[256];
int[] tm = new int[256];
for (int i = 0; i < s.length(); i++) {
if (sm[s.charAt(i)] != tm[t.charAt(i)]) {
return false;
} else {
sm[s.charAt(i)] = tm[t.charAt(i)] = i + 1;
}
}
return true;
}
}
결과
설명
-
주어진 문자열 s와 t가 동일한 형태의 문자열인지 검증하는 문제이다.
- 문제 풀이에 필요한 변수를 정의한다.
- sm과 tm은 각 문자열이 동일한 형태인 문자열인지 검증하기 위한 배열로, ASCII 코드의 문자수인 256으로 설정한다.
- 주어진 문자열 s와 t를 반복하여 동일한 형태의 문자열인지 검증한다.
- sm 배열 내 s의 i번째 문자의 ASCII 코드 번호에 위치한 값과 tm 배열 내 t의 i번째 문자의 ASCII 코드 번호에 위치한 값이 동일하지 않으면 동일한 형태의 문자열이 아니므로, false를 주어진 문제의 결과로 반환한다.
- 위의 경우가 아니면 sm 배열 내 s의 i번째 문자의 ASCII 코드 번호에 위치한 값과 tm 배열 내 t의 i번째 문자의 ASCII 코드 번호에 위치한 값에 $i + 1$을 넣어 동일하게 발생한 위치를 저장한다.
- 반복이 완료되면 주어진 문자열 s와 t가 동일한 형태의 문자열이므로, true를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기