Javaの回文プログラム| PolindromeをチェックするJavaプログラム

公開: 2021-02-26

目次

序章

Javaは、その単純さ、アーキテクチャの中立性、プラットフォームの独立性、分散実行、および再利用性により、プログラマーの間で多くの脚光を浴びています。 また、Javaには、シームレスなプログラミングのための多くの定義済みライブラリがあります。 そして、誰もがそのような言語でコーディングすることに熱心になります。

ここでトピックに移り、指定された入力が回文であるかどうかを確認するJavaコードを記述します。

数または単語は、それを逆にした後も同じままである場合、回文であると言われます。 また、ソリューションを反復的かつ再帰的に実装できます。 それでは始めましょう!

反復Javaコード

アイデアは単純です。 入力の逆数を格納する変数'reverse'を宣言します。

反復ごとに、逆変数に10を掛けます(ユニットの位置を0で埋めるため)。 次に、入力番号を10で割った後、余りを加算します。残りを加算した後、入力番号を10で除算します(ユニットの位置にある数値を削除するため)。

入力番号が0になったら上記のアルゴリズムを停止し、逆変数に存在する数値は入力番号の逆になります。

パブリッククラスupGrad{

public static void main(String [] args){

int n = 12221;

int reverse = 0;

int temp = n;

while(temp> 0){

reverse = reverse * 10;

reverse = reverse + temp%10;

temp = temp / 10;

}

if(reverse == n)

System.out.print(n +”は回文です”);

そうしないと

System.out.print(n +”は回文ではありません”);

}

}

上記のコードでは、初期の数値を格納する変数「n」を宣言し、数値nが回文であるかどうかを確認する必要があります。 whileループでは、前に説明したアルゴリズムに従います。 そして最後に、逆の数が最初の数と等しいかどうかをチェックしています。 変更された番号と初期の番号が類似している場合は、回文ではなく、他の回文として印刷しています。

現在、このコードは整数入力に対してのみ機能します。 また、特定の単語が回文であるかどうかを確認する場合は、文字列を使用して処理する必要があります。 そして、これを行うためのコードがあります。

パブリッククラスupGrad{

public static void main(String [] args){

文字列s=”ローター”;

文字列reverse=new String();

for(int i = s.length()-1; i> = 0; i–)

reverse = reverse + s.charAt(i);

if(s.equals(reverse))

System.out.print(s +”は回文です”);

そうしないと

System.out.print(s +”は回文ではありません”);

}

}

上記のコードでは、最初の文字列の文字をテールからヘッド、リバース文字列に追加し、それが最初の文字列と等しいかどうかを確認しています。 文字列を単語でハードコーディングしましたが、スキャナークラスを使用してユーザー入力で初期化できます。

再帰的なJavaコード

この実装では、最初の文字と最後の文字を比較します。 そして、それらが等しい場合は、残りの文字列に対してさらに繰り返します。

ただし、このロジックは、文字数が奇数の文字列では機能しません。 したがって、文字列を回文として結論付ける基本ケースを含める場合、文字列の長さが1である場合、つまり、最初と最後の文字の位置が同じである場合。 これにより、奇数サイズの文字列に関する問題が解決されます。これは、中央の要素に繰り返して、中央に1つの文字しか残っていないため、回文として結論付けるためです。

パブリッククラスupGrad{

public static boolean isPalindrome(String str、int low、int high){

if(low == high)

trueを返します。

if(str.charAt(low)!= str.charAt(high))

falseを返します。

if(high-low> 1)

isPalindrome(str、low + 1、high-1);を返します。

trueを返します。

}

public static void main(String [] args){

文字列s1=”ローター”;

文字列s2=”プログラミング”;

System.out.println(isPalindrome(s1,0、s1.length()-1));

System.out.println(isPalindrome(s2,0、s2.length()-1));

}

}

上記のコードでは、パラメーターとして2つの整数の文字列を期待する関数を記述しました。 また、lowとhighの2つの整数は、チェックする必要のある文字を追跡するポインターです。 そして、低い位置と高い位置の名前が等しい場合。

文字列が両側から1文字縮小されるように、更新されたパラメーターを使用して同じ関数を呼び出します。 そして、低いポインターと高いポインターが互いに出会うか、それらの間に1つの文字が存在する場合、文字列の中央まで到達し、回文として結論付けます。

それでは、文字列「rotor」のコードをドライランしてみましょう。 最初は、最低値は0、最高値は4です。0番目の位置('r')の文字は4番目の位置('r')の文字と等しいため、lowをlowに更新して再帰呼び出しを行います。 +1およびhighがhigh-1として更新されました。

ここで、lowは1で、highは3です。これらの位置の文字は等しいため、再帰呼び出しを再度行います。 ここで、lowは2、highは2であり、lowがhighと同等である基本ケースをトリガーするため、trueを返します。

整数が回文であるかどうかをチェックする再帰関数を実装することもできます。これを行うプロセスは次のとおりです。

static boolean isPalindrome(int n、int rev、int temp){

if(temp == 0)

n==revを返します。

rev = rev * 10;

isPalindrome(n、rev + temp%10、temp / 10);を返します。

}

上記の関数では、最初はnとtempが同じであることに注意してください。 最後に、逆の数を最初の数と比較する必要があるため、すべての計算は同じ変数で実行されます。 初期番号は変更しないでください。

また読む: Javaプロジェクトのアイデアとトピック

世界のトップ大学からオンラインでソフトウェアコース学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

結論

回文の定義を理解し、文字列/数値が回文であるかどうかを確認するための反復および再帰コードをウォークスルーしました。 サンプル例のドライランによってコードがわかります。 回文をチェックするコードの実装に気付いたので、スキャナークラスを使用して実装し、OOPの概念を使用してコーディングしてみてください。

Javaスキルを向上させたい場合は、これらのJavaプロジェクトを手に入れる必要があります。 Java、フルスタック開発について詳しく知りたい場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニングを9時間以上提供しています。プロジェクト、および割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、およびトップ企業との雇用支援。

回文とは何ですか?

回文文は、文学的構成、句、詩、または単語であり、同じものを前後に読みます。 回文は言葉遊びの一種であり、具体的には、同じものを前後に読む単語または句(文)です。 回文は、単語、句、数字、または同じ文字を逆方向または順方向に読み取るその他の文字シーケンスです。 たとえば、男、計画、運河、パナマ! 回文です。 一部の回文は、番号106601などの単語ではありません。一部の回文は、マダム、私はアダムなどのフレーズです。

Java面接の準備方法は?

Javaの専門家になりたい場合は、最初にいくつかのことが整っていることを確認する必要があります。 何よりもまず、Java言語の実用的な知識が必要です。 次に、JavaAPIを十分に理解している必要があります。 APIを完全に習得している必要はありませんが、何が利用可能で、いつどのクラスを使用するかを理解している必要があります。 最後に、Java仮想マシンを深く理解する必要があります。 たとえば、単純な言語のインタプリタを作成できる必要があります。 コンパイラ開発のポジションについてインタビューしている場合は、オフフックです。

良いJavaプログラムを書く方法は?

Javaでプログラムを作成する際のベストプラクティスには、次のようなものがあります。クラスを開始するには、常に「publicclass」を使用してください。 クラス内で「publicstaticvoidmain」を使用しないでください。 クラス内で「this」キーワードを使用しないでください。 メソッドに「final」修飾子を使用しないでください。 インスタンス変数に「static」修飾子を使用しないでください。 どうしても必要な場合を除いて、変数を「パブリック」にしないでください。 常に適切な命名規則を使用してください。 変数に数字の接尾辞が付いた複数の文字を作成しないでください。 複数の単語で変数を作成することは避けてください。 メソッド内で「this」キーワードを使用しないでください。 'break'キーワードは絶対に使用しないでください。