Java 中的回文程序 | 檢查Polindrome的Java程序
已發表: 2021-02-26目錄
介紹
Java 因其簡單性、架構中立性、平台獨立性、分佈式執行和可重用性而在程序員中獲得了很多關注。 此外,java 有許多用於無縫編程的預定義庫。 每個人都會熱衷於用這種語言編寫代碼。
現在進入我們的主題,我們將編寫一個 java 代碼來檢查給定的輸入是否是回文。
如果一個數字或單詞在反轉後保持不變,則稱其為回文。 我們可以迭代地以及遞歸地實現解決方案。 所以讓我們開始吧!
迭代 Java 代碼
這個想法很簡單; 我們將聲明一個變量“reverse”,它存儲我們輸入的倒數。
我們將在每次迭代中將反向變量乘以 10(用 0 填充單元的位置)。 然後,我們將輸入數字除以 10 後的餘數相加。餘數相加後,我們將輸入數字除以 10(以刪除單元位置的數字)。
當輸入數字變為 0 時,我們將停止上述算法,並且 reverse 變量中存在的數字將與輸入數字相反。
公開課 upGrad{
公共靜態無效主要(字符串[]參數){
詮釋 n=12221;
詮釋反向=0;
國際溫度=n;
而(溫度> 0){
反向=反向*10;
反向=反向+溫度%10;
溫度=溫度/10;
}
如果(反向==n)
System.out.print(n+” 是回文”);
別的
System.out.print(n+" 不是回文");
}
}
在上面的代碼中,我們聲明了一個變量'n'來存儲初始數字,我們必須檢查數字n是否是回文。 在 while 循環中,我們將遵循我們之前討論過的算法。 最後,我們正在檢查反轉的數字是否等於初始數字。 如果更改後的數字和初始數字相似,我們將其打印為回文,而不是回文。
現在,此代碼僅適用於整數輸入。 如果我們想檢查給定的單詞是否是回文,我們必須使用字符串來處理它。 這是執行此操作的代碼。
公開課 upGrad{
公共靜態無效主要(字符串[]參數){
字符串 s="轉子";
字符串反向=新字符串();
for(int i=s.length()-1;i>=0;i–)
反向=反向+s.charAt(i);
if(s.equals(reverse))
System.out.print(s+" 是回文");
別的
System.out.print(s+" 不是回文");
}
}
在上面的代碼中,我們將初始字符串從尾部到頭部的字符附加到反向字符串並檢查它是否等於初始字符串。 我們已經用一個單詞對字符串進行了硬編碼,但是我們可以使用掃描器類通過用戶輸入來初始化它。
遞歸 Java 代碼
在這個實現中,我們將比較第一個和最後一個字符。 如果它們相等,則對剩餘的字符串進一步遞歸。
但是這個邏輯不適用於具有奇數個字符的字符串。 所以如果我們包括一個基本情況,我們將一個字符串總結為回文,如果一個字符串的長度是一個,即第一個和最後一個字符的位置是相同的。 這將清除奇數字符串的問題,因為我們將遞歸到中間元素,然後將其總結為回文,因為中間只有一個字符。
公開課 upGrad{
public static boolean isPalindrome(String str, int low, int high){
如果(低==高)
返回真;
如果(str.charAt(低)!=str.charAt(高))
返回假;
如果(高-低> 1)
返回 isPalindrome(str,low+1,high-1);
返回真;
}
公共靜態無效主要(字符串[]參數){
字符串 s1="轉子";
字符串 s2="編程";
System.out.println(isPalindrome(s1,0,s1.length()-1));
System.out.println(isPalindrome(s2,0,s2.length()-1));
}
}
在上面的代碼中,我們編寫了一個函數,它需要一個字符串,兩個整數作為參數。 而兩個整數,低,高是跟踪必須檢查的字符的指針。 如果低位和高位的名稱相等。
我們將使用更新的參數調用相同的函數,以使字符串從兩側收縮一個字符。 如果指針 low 和 high 彼此相遇或它們之間存在單個字符,那麼我們已經到達字符串的中間並將其視為回文。
現在,讓我們試運行一下字符串“rotor”的代碼。 最初,low 為 0,high 為 4。由於第 0 位的字符('r')等於第 4 位的字符('r'),我們將進行遞歸調用,將 low 更新為 low +1 和 high 更新為 high-1。
現在,low 為 1,high 為 3,因為這些位置的字符相等,我們將再次進行遞歸調用。 現在 low 為 2,high 為 2,它觸發了 low 等價於 high 的基本情況,所以我們將返回 true。
我們還可以實現一個遞歸函數來檢查一個整數是否是回文,這是執行此操作的過程。
靜態布爾isPalindrome(int n,int rev,int temp){
如果(溫度==0)
返回 n==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 語言工作知識。 其次,您應該對 Java API 有很好的了解。 您不必完全掌握 API,但您應該了解可用的內容以及何時使用哪個類。 最後,你需要對Java虛擬機有深入的了解。 例如,您應該能夠為一種簡單的語言編寫解釋器。 如果您正在面試編譯器開發職位,那麼您就擺脫了困境。
如何寫出好的Java程序?
用 java 編寫程序時的一些最佳實踐是: 始終使用“公共類”來啟動類。 切勿在類中使用“public static void main”。 切勿在類中使用“this”關鍵字。 永遠不要在方法上使用 'final' 修飾符。 切勿在實例變量上使用“靜態”修飾符。 除非絕對必要,否則切勿將變量“公開”。 總是有一個好的命名約定。 永遠不要讓一個變量超過一個帶有數字後綴的字母。 避免用一個以上的詞來製造變量。 切勿在方法中使用“this”關鍵字。 永遠不要使用'break'關鍵字。