首頁 > Java > java教程 > 主體

java實作尋找第一個只出現一次的字符

王林
發布: 2019-11-29 17:13:34
轉載
2896 人瀏覽過

java實作尋找第一個只出現一次的字符

問題:

在字串(0<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置, 如果沒有則返回-1(需要區分大小寫)

相關視頻教程推薦:java在線教程

##解決思路:

題目要求很明確,就是遍歷字串,並且給字元計數,計數之後,找到計數為1的字元即可。很明顯這需要用到hashmap,key就是字串中的各個字符,而value就是這個字符在字串中出現的次數。

程式碼如下:

import java.util.LinkedHashMap;
public class Solution {
    public int FirstNotRepeatingChar(String str) {
        int len = str.length();
        LinkedHashMap<Character, Integer> map = new LinkedHashMap<>();
        for (int i = 0; i < len; i++) {
            char c = str.charAt(i);
            Integer val = map.get(c);
            map.merge(c, 1, (oldValue, newValue) -> oldValue + newValue);
        }
        Character resultKey = null;
        for (Character c : map.keySet()){
            if (map.get(c) == 1){
                resultKey = c;
                break;
            }
        }
        for (int i = 0 ;i < len; i++){
            if (str.charAt(i) == resultKey){
                return i;
            }
        }        
       return -1;
    }
}
登入後複製

相關文章教學推薦:

java快速入門

以上是java實作尋找第一個只出現一次的字符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板