PS
코딩 인터뷰 완전 분석 1.4 회문 순열
Bryan Lee
2022. 4. 11. 22:56
문제 이해
- 문자열이 회문의 순열인지 아닌지를 판단하라
해결 전략
- 배열을 이용해서 문자열의 각 문자의 개수를 저장한다.
- 회문의 순열이기 위해서는 홀수인 문자의 개수가 없거나, 하나만 존재해야 한다.
구현
import java.util.*;
public class Main {
public boolean solution(String s){
int[] arr = new int[30];
int oddCnt = 0;
s = s.toLowerCase();
for(int i=0; i<s.length(); i++){
int pos = s.charAt(i)-97;
if(0<=pos && pos<=25){
arr[pos] += 1;
}
}
for(int i=0; i<=25; i++){
if(arr[i] % 2 == 1){
oddCnt += 1;
}
}
if(oddCnt <= 1){
return true;
}else{
return false;
}
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str=kb.nextLine();
System.out.println(T.solution(str));
}
}
피드백
- 회문의 성립 조건을 잘 생각해야 한다.