LeetCode 알고리즘 문제풀이

[LeetCode-242] Valid Anagram 문제풀이 - Java 사용

줄라이퍼스트 2020. 9. 16. 16:38

Valid Anagram 문제풀이 - Java 사용

 

 

구글번역기를 이용하여 번역
Note에 문자열은 '소문자' 알파벳만 포함되어있다고 가정을 하였다.
아스키코드 소문자인 97~122를 이용하여 문제를 풀어보았다.

매개변수 s와 t를 입력받으면 알파벳을 담은 변수를 생성하고 해당변수에 있는 값을 비교를하면서 값이맞으면 true를 리턴하는 방식

class Solution {
	   public boolean isAnagram(String s, String t) {
		        if (s.length() != t.length()) {
		            return false;
		        }
		        // 알파벳을 담을 변수 2개 생성 -> 매개변수 s,t를 alph와 alph2에 담은후 값을 저장하여 비교할 예정
		        int[] alph = new int[26]; 
		        int[] alph2 = new int[26];
	       
		        // 문자열 길이 만큼 for문을 돌려 alph와 alph2에 있는 자리에 값을 증가시킴
		        for (int i = 0; i < s.length(); i++) {
		        	// a가 들어가고 charAt 문자열 추출
		            char sArray = s.charAt(i);
		            // n이 들어감
		            char tArray = t.charAt(i);
		            alph[sArray-97]++; // 배열 첫번째 에 1 -> a		            
		            alph2[tArray-97]++; //n일경우 110 - 97 = 13 13번쨰 배열에 1로
		            					//g가 들어올시 아스키코드 103 - 97 = 6 6번쨰배열에 1증가
		        }
		        // alph와 alph2에 있는 변수를 비교하여 같지 않으면 false 같으면은 true가 됨
		        for (int i = 0; i < alph.length; i++) {
		            if (alph[i] != alph2[i]) {
		                return false;
		            }
		        }
		        return true;
		    }
	}