91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何返回第一個找到符合條件的字符

發布時間:2021-10-12 11:31:19 來源:億速云 閱讀:115 作者:iii 欄目:編程語言

這篇文章主要介紹“如何返回第一個找到符合條件的字符”,在日常操作中,相信很多人在如何返回第一個找到符合條件的字符問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何返回第一個找到符合條件的字符”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

問題描述

針對給定的一個字符串 s,你需要寫一個算法,返回給定字符串中不重復字符。

這個題目在隨后的面試中又出來變種。

這次需要函數返回的找到的字符串,同時輸入的字符串中還有大小寫。

另外,因為在線編譯器的限制,你又不能使用 HashMap。

解題思路

使用 Java 來說還是相對比較好處理的。

解題思路也比較簡單,你需要使用一個中間變量來存儲,首先還是需要將進行處理的字符串轉換為 char 的數組。

然后在數組中拿到第一個字符。

當你拿到第一個字符的時候,你做這樣一件事情,將這個字符對目標字符串進行替換為 “”;

如果有相同的,那么肯定會被替換掉,同時你再考慮替換掉一次大寫的,一次小寫的。

如果有大寫字母相同的,那么也會被替換掉。

例如字符串 “serTSSEr”,那么你在完成后上面的算法后,假設我們對比第一個要替換的字符是 s,那么完成后算法后的字符串為 “erTEr”。

我們發現字符串的長度就不是原始長度 -1 了,因為你替換了多個字符串,因此可以知道這個被查找的字符是重復的。

當我們循環到字符 T 的時候,我們會發現完成后算法后的字符串長度就是原始輸入字符串長度 -1,那么我們就知道 T 就是我們需要輸出的字符了。

需要注意的是特殊情況 “ssee” 這種情況,如果你循環到最后,可能會發現原始字符的長度和完成整個循環后字符的長度沒有變化,那么說明所有的字符都有重復,那么你應該返回 “”。

更進一步

為了減少搜索次數,你可以在完成后第一次替換后的余下的字符串中進行算法查找和替換,因為這個算法值需要找到字符,并不需要你輸出下標。

因此在循環中,下次需要查找的字符串長度就減少了,算法的效率也就更高了。

完整測試代碼,請參考題目中的 GitHub 鏈接地址:https://github.com/cwiki-us-docs/java-tutorials/blob/master/toolkits/codebank/src/test/java/com/ossez/toolkits/codebank/tests/leetcode/LeetCode0387FirstUniqueCharacterTest.java

如何返回第一個找到符合條件的字符

我們這里將這個測試方法寫在下面供需要的童鞋參考。

/**
 * Return the first Uniq Char String without using Map
 * @param data
 * @return
 */
private String firstUniqCharString(String data) {
    // NULL CHECK
    if (data.equals("")) {
        return "";
    }

    char[] strArray = data.toCharArray();
    String retStr = "";

    if (data.length() == 1) {
        retStr = data;
    }

    for (int i = 0; i < strArray.length; i++) {
        String valStr = Character.toString(strArray[i]);
        String rData = data;
        rData = data.replace(valStr, "");
        rData = rData.replace(valStr.toUpperCase(Locale.ROOT), "");
        rData = rData.replace(valStr.toLowerCase(Locale.ROOT), "");

        if (rData.length() == 0) {
            retStr = "";
        } else if (rData.length() + 1 == data.length()) {
            retStr = valStr;
            break;
        }
    }
    return retStr;
}

到此,關于“如何返回第一個找到符合條件的字符”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丹棱县| 鲜城| 上饶市| 社会| 长子县| 张家港市| 崇明县| 垣曲县| 台南县| 越西县| 东阿县| 应用必备| 巧家县| 浑源县| 沈丘县| 云林县| 西丰县| 云梦县| 合作市| SHOW| 安泽县| 乐陵市| 崇州市| 天柱县| 同德县| 德江县| 禄丰县| 郓城县| 尤溪县| 阳曲县| 唐海县| 南木林县| 清涧县| 伊川县| 福州市| 交口县| 聂荣县| 茌平县| 镇安县| 万载县| 合阳县|