Algorithm

[기초 알고리즘] String

noahkim_ 2023. 11. 8. 18:55

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