자바의 회문 프로그램 | Polindrome을 확인하는 Java 프로그램
게시 됨: 2021-02-26목차
소개
Java는 단순성, 아키텍처 중립성, 플랫폼 독립성, 분산 실행 및 재사용성으로 인해 프로그래머들 사이에서 많은 주목을 받았습니다. 또한 Java에는 원활한 프로그래밍을 위해 미리 정의된 라이브러리가 많이 있습니다. 그리고 모든 사람은 그러한 언어로 코딩하는 데 열광할 것입니다.
이제 우리의 주제로 와서 주어진 입력이 회문인지 여부를 확인하기 위해 자바 코드를 작성할 것입니다.
숫자나 단어를 뒤집은 후에도 그대로 유지되면 회문이라고 합니다. 그리고 우리는 재귀적으로 뿐만 아니라 반복적으로 솔루션을 구현할 수 있습니다. 시작하겠습니다!
반복적인 자바 코드
아이디어는 간단합니다. 우리는 입력의 역수를 저장하는 'reverse' 변수를 선언할 것입니다.
모든 반복에서 역 변수에 10을 곱합니다(단위의 위치를 0으로 채우기 위해). 그런 다음 입력된 숫자를 10으로 나눈 나머지를 더합니다. 나머지를 더한 후 입력된 숫자를 10으로 나눕니다(단위의 위치에 있는 숫자를 제거하기 위해).
입력 숫자가 0이 되면 위의 알고리즘을 중지하고 reverse 변수에 있는 숫자는 입력 숫자의 반대가 됩니다.
공개 클래스 upGrad{
공개 정적 무효 메인(문자열[] 인수) {
정수 n=12221;
정수 역 = 0;
정수 온도 = n;
동안(온도>0){
역방향=역방향*10;
역방향=역방향+온도%10;
온도=온도/10;
}
if(역==n)
System.out.print(n+”는 회문입니다”);
또 다른
System.out.print(n+”는 회문이 아닙니다”);
}
}
위의 코드에서는 초기 숫자를 저장하는 변수 'n'을 선언했고, 숫자 n이 회문인지 아닌지 확인해야 합니다. while 루프에서 우리는 앞서 논의한 알고리즘을 따를 것입니다. 그리고 마지막으로 반전된 숫자가 초기 숫자와 같은지 확인합니다. 변경된 숫자와 초기 숫자가 비슷하면 회문이 아닌 다른 회문으로 출력합니다.
이제 이 코드는 정수 입력에 대해서만 작동합니다. 그리고 주어진 단어가 회문인지 확인하려면 문자열을 사용하여 처리해야 합니다. 그리고 이를 수행하는 코드가 있습니다.
공개 클래스 upGrad{
공개 정적 무효 메인(문자열[] 인수) {
문자열 s = "회전자";
문자열 반전=new String();
for(int i=s.length()-1;i>=0;i–)
reverse=reverse+s.charAt(i);
if(s.equals(역))
System.out.print(s+”는 회문입니다”);
또 다른
System.out.print(s+”는 회문이 아닙니다”);
}
}
위의 코드에서는 역 문자열에 꼬리부터 머리까지 초기 문자열의 문자를 추가하고 초기 문자열과 같은지 확인합니다. 문자열을 단어로 하드코딩했지만 스캐너 클래스를 사용하여 사용자 입력으로 문자열을 초기화할 수 있습니다.
재귀 자바 코드
이 구현에서는 첫 번째 문자와 마지막 문자를 비교할 것입니다. 그리고 그들이 같으면 나머지 문자열에 대해 더 반복됩니다.
그러나 이 논리는 문자 수가 홀수인 문자열에는 작동하지 않습니다. 따라서 문자열을 회문으로 결론짓는 기본 사례를 포함하면 문자열의 길이가 1인 경우, 즉 첫 번째 문자와 마지막 문자의 위치가 동일합니다. 이렇게 하면 중간 요소로 돌아가서 중간에 단일 문자만 남아 있기 때문에 회문으로 결론을 내리기 때문에 이상한 크기의 문자열 문제가 해결됩니다.
공개 클래스 upGrad{
공개 정적 부울 isPalindrome(String str, int low, int high){
if(낮음==높음)
true를 반환합니다.
if(str.charAt(낮음)!=str.charAt(높음))
거짓을 반환합니다.
if(높음-낮음>1)
반환 isPalindrome(str,low+1,high-1);
true를 반환합니다.
}
공개 정적 무효 메인(문자열[] 인수) {
문자열 s1="로터";
문자열 s2="프로그래밍";
System.out.println(isPalindrome(s1,0,s1.length()-1));
System.out.println(isPalindrome(s2,0,s2.length()-1));
}
}
위의 코드에서 우리는 매개변수로 두 개의 정수가 있는 문자열을 기대하는 함수를 작성했습니다. 그리고 두 개의 정수(낮음, 높음)는 검사해야 하는 문자를 추적하는 포인터입니다. 그리고 낮은 위치와 높은 위치의 이름이 같은 경우.
문자열이 양쪽에서 한 문자만큼 줄어들도록 업데이트된 매개변수를 사용하여 동일한 함수를 호출합니다. 그리고 낮은 포인터와 높은 포인터가 서로 만나거나 그 사이에 단일 문자가 있으면 문자열의 중간까지 도달하여 회문으로 끝납니다.
이제 문자열 "rotor"에 대한 코드를 테스트 실행해 보겠습니다. 처음에 낮은 값은 0이고 높은 값은 4입니다. 0번째 위치의 문자('r')는 4번째 위치의 문자('r')와 같으므로 low를 low로 업데이트하는 재귀 호출을 만듭니다. +1 및 high는 high-1로 업데이트되었습니다.
이제 낮은 위치는 1이고 높은 위치는 3이므로 해당 위치의 문자가 동일하므로 다시 재귀 호출을 수행합니다. 이제 low는 2이고 high는 2이며 low가 high와 동일한 기본 경우를 트리거하므로 true를 반환합니다.
정수가 회문인지 여부를 확인하기 위해 재귀 함수를 구현할 수도 있습니다. 이를 수행하는 프로세스는 다음과 같습니다.
정적 부울 isPalindrome(int n, int rev, int temp){
if(온도==0)
리턴 n==rev;
레브=레브*10;
반환 isPalindrome(n,rev+temp%10,temp/10);
}
위의 함수에서 처음에는 n과 temp가 동일합니다. 마지막으로 역수를 초기 수와 비교해야 하므로 모든 계산이 동일한 변수에 대해 수행됩니다. 초기 번호는 변경하면 안 됩니다.
또한 읽기: Java 프로젝트 아이디어 및 주제
세계 최고의 대학에서 온라인으로 소프트웨어 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
결론
우리는 회문의 정의를 이해했으며 문자열/숫자가 회문인지 여부를 확인하기 위한 반복 및 재귀 코드를 살펴보았습니다. 샘플 예제의 테스트 실행으로 코드를 알고 있습니다. 회문을 확인하기 위한 코드 구현에 대해 알고 있으므로 스캐너 클래스를 사용하여 구현하고 OOP 개념을 사용하여 코딩해 보십시오.
Java 기술을 향상시키려면 이러한 Java 프로젝트에 손을 대야 합니다. Java, 전체 스택 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 Executive PG 프로그램을 확인하십시오. 이 프로그램은 일하는 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9+ 시간을 제공합니다. 프로젝트 및 과제, IIIT-B 동문 상태, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
회문이란 무엇입니까?
회문(Palindromic) 문장은 문학적 구성, 구, 절 또는 단어로 앞뒤로 같은 것을 읽습니다. 회문(palindrome)은 단어 놀이의 일종으로, 특히 앞뒤로 같은 단어나 구(문장)를 읽습니다. 회문은 앞뒤로 동일한 단어, 구, 숫자 또는 기타 일련의 문자를 읽습니다. 예를 들어, 남자, 계획, 운하, 파나마! 회문이다. 일부 회문은 숫자 106601과 같이 단어가 아닙니다. 일부 회문은 Madam, I'm Adam과 같은 구입니다.
Java 인터뷰를 준비하는 방법은 무엇입니까?
Java 전문가가 되려면 먼저 몇 가지 사항이 제대로 되어 있는지 확인해야 합니다. 무엇보다도 Java 언어에 대한 작업 지식이 있어야 합니다. 둘째, Java API를 잘 이해하고 있어야 합니다. API를 완전히 마스터할 필요는 없지만 사용 가능한 항목과 사용 가능한 클래스를 이해하고 있어야 합니다. 마지막으로 Java Virtual Machine에 대한 깊은 이해가 필요합니다. 예를 들어, 간단한 언어에 대한 인터프리터를 작성할 수 있어야 합니다. 컴파일러 개발 직책에 대해 인터뷰하는 경우, 당신은 곤경에 처해 있습니다.
좋은 자바 프로그램을 작성하는 방법?
Java로 프로그램을 작성하는 동안의 몇 가지 모범 사례는 다음과 같습니다. 항상 '공개 클래스'를 사용하여 클래스를 시작하십시오. 클래스 내에서 'public static void main'을 사용하지 마십시오. 클래스 내에서 'this' 키워드를 사용하지 마십시오. 메소드에 'final' 수식어를 사용하지 마십시오. 인스턴스 변수에 'static' 수정자를 사용하지 마십시오. 절대적으로 필요한 경우가 아니면 변수를 '공개'로 만들지 마십시오. 항상 좋은 명명 규칙을 사용하십시오. 숫자 접미사가 있는 두 글자 이상의 변수를 만들지 마십시오. 하나 이상의 단어로 변수를 만들지 마십시오. 메소드 내에서 'this' 키워드를 사용하지 마십시오. 'break' 키워드를 사용하지 마십시오.