-
[코딩테스트] 문자열이 회문(palindrome)의 순열인지 아닌지 확인하는 함수공부/코딩테스트 2021. 2. 9. 16:20728x90반응형
회문이란 ) 앞으로 읽으나 뒤로 읽으나 문자의 순서가 동일한 것을 말합니다.
해당 문제는 회문이 가능한 순열을 만들 수 있는 지의 여부를 묻기습니다.
때문에 동일한 문자가 짝수갯수로 있어야하며
홀수로 있다면 그 경우는 1이하로만 존재해야 합니다.
그리고 공백은 무시합니다.
조건 문자열은 a~z 에 대한 회문 순열입니다.
대문자나 숫자가 들어가면 해당 아스키코드 범위를 수정하면 됩니다.
// 문자열이 회문(palindrome)의 순열인지 아닌지 확인하는 함수 static void Test4(string text) { int a = 'a'; // int 에 char 값을 넣으면 아스키코드 반환 int z = 'z'; int[] table = new int[z - a + 1]; int count = 0; foreach (var item in text.ToCharArray()) { int x = GetCharNumber(item); if(x != -1) { table[x]++; if (table[x] % 2 == 1) count++; else count--; } } bool result = count <= 1; Console.Write("a : " + result); } static int GetCharNumber(char c) { int a = 'a'; int z = 'z'; int val = c; if (a <= val && val <= z) return val - a; else return -1; }
728x90반응형'공부 > 코딩테스트' 카테고리의 다른 글
[코딩테스트] HackerRank - Mini-Max Sum (0) 2024.10.23 [코딩테스트] HackerRank - Plus Minus (0) 2024.10.23 [코딩테스트] URL 화 ) 문자열의 모든 공백을 '&20'으로 바꾸기 (0) 2021.02.09 [코딩테스트] 문자열 두 개의 순열 관계를 확인하라 (0) 2021.02.09 [코딩테스트] 문자열에서 중복되는 문자가 있는지 찾기 (0) 2021.02.09