溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java回文串識(shí)別函數(shù)的設(shè)計(jì)與實(shí)現(xiàn)

發(fā)布時(shí)間:2024-11-11 15:25:42 來源:億速云 閱讀:78 作者:小樊 欄目:編程語(yǔ)言

在Java中,我們可以設(shè)計(jì)一個(gè)函數(shù)來檢查一個(gè)字符串是否是回文串。回文串是指正讀和反讀都相同的字符串。以下是一個(gè)簡(jiǎn)單的實(shí)現(xiàn):

public class PalindromeChecker {

    public static void main(String[] args) {
        String input = "madam";
        boolean isPalindrome = isPalindrome(input);
        System.out.println("Is the input string a palindrome? " + isPalindrome);
    }

    /**
     * 檢查字符串是否是回文串
     *
     * @param s 要檢查的字符串
     * @return 如果字符串是回文串,則返回true,否則返回false
     */
    public static boolean isPalindrome(String s) {
        if (s == null || s.length() == 0) {
            return true;
        }

        int left = 0;
        int right = s.length() - 1;

        while (left < right) {
            if (s.charAt(left) != s.charAt(right)) {
                return false;
            }
            left++;
            right--;
        }

        return true;
    }
}

代碼解釋

  1. 主函數(shù) main:

    • 定義一個(gè)輸入字符串 input。
    • 調(diào)用 isPalindrome 函數(shù)檢查該字符串是否是回文串。
    • 打印結(jié)果。
  2. 回文檢查函數(shù) isPalindrome:

    • 首先檢查輸入字符串是否為空或長(zhǎng)度為0,如果是,則直接返回 true,因?yàn)榭兆址烷L(zhǎng)度為0的字符串都是回文串。
    • 使用兩個(gè)指針 leftright,分別指向字符串的開頭和結(jié)尾。
    • 使用 while 循環(huán),當(dāng) left 小于 right 時(shí),比較 s.charAt(left)s.charAt(right)
      • 如果這兩個(gè)字符不相等,則返回 false,表示該字符串不是回文串。
      • 如果這兩個(gè)字符相等,則將 left 向右移動(dòng)一位,將 right 向左移動(dòng)一位,繼續(xù)比較下一對(duì)字符。
    • 當(dāng) left 不再小于 right 時(shí),說明所有字符都匹配,返回 true,表示該字符串是回文串。

這個(gè)實(shí)現(xiàn)方法的時(shí)間復(fù)雜度是 O(n),其中 n 是字符串的長(zhǎng)度,因?yàn)槊總€(gè)字符最多被比較一次。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI