1. Anagram
- 단어나 문장을 구성하고 있는 문자의 순서를 바꾸어 다른 단어나 문장을 만드는 것
예시
- stressed→desserts
- Elvis→lives
- Permission to dance → Stories on Pandemic
구현
private static int CHARACTER_RANGE= 256;
public boolean isAnagramCounting(String string1, String string2) {
if (string1.length() != string2.length()) {
return false;
}
int count[] = new int[CHARACTER_RANGE];
for (int i = 0; i < string1.length(); i++) {
count[string1.charAt(i)]++;
count[string2.charAt(i)]--;
}
for (int i = 0; i < CHARACTER_RANGE; i++) {
if (count[i] != 0) {
return false;
}
}
return true;
}
2. Palindrom
- 거꾸로 해도 원래의 문자열과 같은 문자열을 가리키는 말입니다.
예시
- abdba
- 1234567654321
구현
boolean validPalindrome(String s) {
for (int i = 0, j = s.length() - 1; i < j; i++, j--) {
if (Character.toLowerCase(s.charAt(i)) != Character.toLowerCase(s.charAt(j)))
return false;
}
return true;
}
출처
'Algorithm' 카테고리의 다른 글
[알고리즘] Divide and conquer (0) | 2024.02.18 |
---|---|
[고급 알고리즘] Dynamic Programming (0) | 2023.11.10 |
[기초 알고리즘] 수학 (0) | 2023.11.08 |
[알고리즘] Greedy (0) | 2023.11.08 |
[알고리즘] Two Pointer (0) | 2023.11.08 |