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는 여기에서 확인 가능합니다.
 
  
  
댓글남기기