isIsogram

이용만·2023년 3월 28일
0
public class Solution { 
	public boolean isIsogram(String str) {
    // TODO : 같은 문자가 있는지 확인 하는 문제이다.
		
		//소문자로 바꾼다.
		str = str.toLowerCase();

		//str의 각 문자요소를 문자형 배열로 변환한다.
		char[] arr = str.toCharArray();

		//향상된 for문을 통해 비교를 하고 같으면 false를 리턴
		for(char ch : arr){
			if(str.indexOf(ch) != str.lastIndexOf(ch)) {
					return false;
			}
		}
		return true;		
	} 
}

toCharArray(): 문자열을 char형 배열로 바꿔줌
indexOf(): 앞에서부터 검색할 값을 찾음
lastIndexOf(): 끝에서부터 검색할 값을 찾음

indexOf() 메서드는 앞에서부터 끝까지 검색할 값을 찾는데, 못찾을 시 -1를 반환한다.
if(str.indexOf(ch) != str.lastIndexOf(ch)) : != 같지 않을 경우를 썼는데, 'isogram'을 인자로 받게 되면 검색한 값이 없기 때문에 str.indexOf(ch)와 str.lastIndexOf(ch) 은 -1을 반환하게 되고 둘의 값은 같기 때문에 return false가 실행되지 않는다.

profile
성장하는 개발자가 되고자 합니다.

0개의 댓글