Java에서 회문 문자열을 확인하는 방법은 무엇입니까?

소개



이 기사에서는 Java에서 문자열 palindrome을 찾을 수 있으며 정수와 동일하게 작동합니다. palindrome string의 의미는 오른쪽에서 왼쪽으로 또는 왼쪽에서 오른쪽으로 읽기 시작하면 두 경우 모두 동일하다는 것입니다.

연산



접근법 1



자바에서 문자열 회문을 확인하기 위해 문자열의 시작과 끝에서 하나씩 문자를 선택하고 서로 비교할 수 있습니다.

=> 문자열의 첫 번째 문자와 마지막 문자를 선택하고 비교하여 두 문자가 모두 일치하면 계속 진행합니다. 그렇지 않으면 문자열이 회문이 아닙니다.
=> 문자열의 첫 번째와 마지막에서 두 번째 문자를 선택하고 비교합니다. 둘 다 일치하면 계속합니다. 그렇지 않으면 문자열이 회문이 아닙니다.
=> 비교할 두 문자가 같거나 서로 인접할 때까지 위의 비교를 계속합니다.

접근법 2



문자를 처음부터 끝까지 비교하는 대신 주어진 문자열의 역방향 문자열을 찾아 두 문자열을 비교할 수 있습니다. 두 문자열이 같으면 문자열이 회문임을 의미합니다.

=> 주어진 문자열에서 문자 배열 가져오기
=> 끝에서 시작 인덱스까지 배열을 반복하여 문자열을 만듭니다.
=> 두 문자열에서 구분 기호, 쉼표 또는 기타 구분 기호 제거(선택 사항)
=> 마지막으로 두 문자열을 비교합니다.

예시

1. 루프를 사용하는 자바의 문자열 회문

import java.util.Scanner;

public class Main 
{
  public static void main(String[] args) 
  {
    System.out.print("Enter any string : ");
    Scanner in = new Scanner(System.in);
    String origString = in.nextLine();
    String reverseString = "";

    char[] characters = origString.toCharArray();

    for( int i = characters.length - 1 ; i >= 0 ; i-- ) {
      reverseString = reverseString + characters[i];
    }

    //Check palindrome string
    if (origString.equals(reverseString)) {
      System.out.println("String is a palindrome.");
    } else {
      System.out.println("String is not a palindrome.");
    }
  }
}


산출:
임의의 문자열 입력: 날씨
문자열은 회문이 아닙니다.

임의의 문자열 입력: 나만
문자열은 회문입니다.

예시

class Main {
  public static void main(String[] args) {

    String str = "Radar", reverseStr = "";

    int strLength = str.length();

    for (int i = (strLength - 1); i >=0; --i) {
      reverseStr = reverseStr + str.charAt(i);
    }

    if (str.toLowerCase().equals(reverseStr.toLowerCase())) {
      System.out.println(str + " is a Palindrome String.");
    }
    else {
      System.out.println(str + " is not a Palindrome String.");
    }
  }
}



산출:
레이더는 회문입니다.

예시

스택 사용

import java.util.Scanner;
import java.util.Stack;

public class Main 
{
  public static void main(String[] args) 
  {
    System.out.print("Enter the string : ");
    Scanner in = new Scanner(System.in);
    String origString = in.nextLine();

    Stack<Character> stack = new Stack<>();

    //Push all chars in stack
    for (int i = 0; i < origString.length(); i++) {
      stack.push(origString.charAt(i));
    }

    String reverseString = "";

    //Pop all chars from stack one by one and build reverse string
    while (!stack.isEmpty()) {
      reverseString = reverseString + stack.pop();
    }

    //Check palindrome string
    if (origString.equals(reverseString)) {
      System.out.println("String is a palindrome.");
    } else {
      System.out.println("String is not a palindrome.");
    }
  }
}


산출:
문자열을 입력하십시오: 부인
문자열은 회문입니다.

예시

대기열 사용

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class Main 
{
  public static void main(String[] args) 
  {
    System.out.print("Enter the string : ");
    Scanner in = new Scanner(System.in);
    String origString = in.nextLine();

    Queue<Character> queue = new LinkedList<>();

        for (int i = origString.length()-1; i >=0; i--) {
            queue.add(origString.charAt(i));
        }

    String reverseString = "";

    //Pop all chars from stack one by one and build reverse string
    while (!queue.isEmpty()) {
      reverseString = reverseString + queue.remove();
    }

    //Check palindrome string
    if (origString.equals(reverseString)) {
      System.out.println("String is a palindrome.");
    } else {
      System.out.println("String is not a palindrome.");
    }
  }
}


산출:
문자열을 입력하십시오: racecar
문자열은 회문입니다.

문자열 입력: java
문자열은 회문이 아닙니다.

결론



이 블로그에서 우리는 Java 문제에서 문자열 palindrome을 사용했습니다. 존재 복잡도의 명확화 문제에서 문자열 회문에 대한 두 가지 방법론을 검토했습니다.

우리는 진정으로 당신이 이 블로그를 정독하는 것을 기뻐한다고 믿고 싶습니다. Java에서 문자열 전환과 유사한 추가 문자열 문제를 평가하고, 숫자가 회문인지 확인하고, 주어진 두 문자열이 서로 동형인지 확인하고, 기본 문자를 앞에 추가하여 문자열 회문을 만들고, 기타 등등. Java에는 Java에 대한 전문 지식을 얻기 위해 초기 및 중간 수준에서 배울 수 있는 여러 개념이 있습니다. 자바의 최종 키워드, 자바스크립트 기본, oops 개념 등과 같은 일부 개념

좋은 웹페이지 즐겨찾기