Arrays and Strings - Palindrome Permutation
2019-08-30
회문 순열
- 회문
- 앞으로 읽으나 뒤로 읽으나 같은 단어 혹은 구절
- 순열
- 문자열을 재배치하는 것
회문 순열을 만족하기 위해서는 길이가 짝수일 경우 모든 문자의 개수가 반드시 짝수여야 하고, 길이가 홀수일 경우에는 문자 하나는 홀수 개 존재해도 괜찮다.
각 문자가 몇 번 등장했는지 센다.
int PalindromeofPermutation(String phrase) {
int count = 0;
int[] table = new int[Character.getNumericValue('z') - Character.getNumericValue('a') + 1];
for (char c : phrase.toCharArray()) {
int x = Character.getNumericValue(c)-Character.getNumericValue('a');
if( x != -1) {
Table[x]++;
if (table[x] % 2 ==1) {
count++;
}
else {
count--;
}
}
}
return count <=1;
}
알파벳 소문자로 이루어진 문자열을 훑어 홀수의 개수를 확인한다. count가 1과 같거나 0이면 회문 순열이고, 1보다 크다면 회문 순열이 아니다.