강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của qjawnswkd07176790
qjawnswkd07176790

câu hỏi đã được viết

Giới thiệu về giải quyết vấn đề thuật toán Java: Chuẩn bị cho các bài kiểm tra mã hóa

5. Đảo ngược các ký tự cụ thể (toCharArray())

선생님 오답에 관해서 질문입니다!

Viết

·

291

0

public static String solution(String str) {
        char[] originalWord = str.toCharArray();
        char[] reverseWord = new StringBuilder(str).reverse().toString().toCharArray();

        int length = originalWord.length;
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < length; i++) {
            if(Character.isAlphabetic(originalWord[i]))
                sb.append(reverseWord[i]);
            else if(!Character.isAlphabetic(originalWord[i]))
                sb.append(originalWord[i]);
        }
        return sb.toString();
    }
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str = scan.next();
        String result = solution(str);
        System.out.println(result);
    }

입력받은 문자열을 char 배열로 뒀고

입력받은 문자열을 reverse 하여 char 배열을 하나 생성한 후

입력받은 문자열에 알파벳이 있으면 StringBuilder에 reverse 배열의 해당 인덱스를 가진 문자를 추가하고

없으면 특수문자라고 인식하여 본래의 입력값 배열에서 해당 인덱스를 가진 문자를 StringBuilder 에 추가하여 작성하였습니다.

처음엔 저런식으로 정규식으로 했는데 오답이 떠서  Character.isAlphabetic을 이용했는데도 오답이 뜹니다ㅜ 혹시 제가 놓친 부분이 있거나 메모리적으로 좋지 않은 방법이라서 오답인건지 궁금합니다..!

java코테 준비 같이 해요!

Câu trả lời 2

1

codingcamp님의 프로필 이미지
codingcamp
Người chia sẻ kiến thức

안녕하세요^^

이 방법은 반례가 너무 많습니다.

kj#$stpj 이 입력되면 jp#$tsjk 나와야 합니다.

위에 입력으로 본인 코드를 디버그 해보세요.

0

qjawnswkd07176790님의 프로필 이미지
qjawnswkd07176790
Người đặt câu hỏi

앗 이 경우를 생각못했네요ㅜ 감사합니다ㅎㅎ

Hình ảnh hồ sơ của qjawnswkd07176790
qjawnswkd07176790

câu hỏi đã được viết

Đặt câu hỏi