본문 바로가기
Portpolio/java_algo_interview

자바 알고리즘 인터뷰 06. 문자열 처리

by Peter Choi 2023. 12. 31.
반응형

[ch6/P1] L125. 유효한 팰린드롬

- 대괄호와 캐럿 기호, 범위를 나타내는 하이픈 기호를 통해 정규 표현식의 개념을 사용함

public class P1 {
    public static void main(String args[]) {
        String input = "AMAIIAMA";
        P1 obj = new P1();
        boolean isPalindrome = obj.isPalindrome(input);
        System.out.println(isPalindrome);
    }

    public boolean isPalindrome(String s) {
        String sLower = s.toLowerCase();
        String sRemoved = sLower.replaceAll("[^a-zA-Z0-9]", ""); //정규표현식
        String revStr = ""; //초기화

        for(int i = sRemoved.length() - 1; i >= 0 ; i--) {
            revStr += sRemoved.charAt(i);
        }
        if (sRemoved.equals(revStr)) {
            return true;
        }
        return false;
    }


}

 

[ch6/P2] L344. 문자열 뒤집기

- import java.util.Arrays; 이용해서 Arrays.toString() 메서드 사용

import java.util.Arrays;

public class P2 {
    public static void main(String args[]) {
        P2 p2Instance = new P2();
        char[] input = {'h', 'e', 'l', 'l', 'o'};

        // reverseString 메소드 호출
        p2Instance.reverseString(input);

        // 뒤집힌 문자열 출력
        System.out.println("Reversed String: " + Arrays.toString(input));
    }

    public void reverseString(char[] s) {
        for (int i = 0, j = s.length - 1; i < j; i++, j--) {
            char tmp = s[i];
            s[i] = s[j];
            s[j] = tmp;
        }
    }
}

 

반응형

댓글