iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0
自我挑戰組

leetcode解題學習java系列 第 9

30天LeetCode挑戰紀錄-DAY9. First Unique Character in a String

  • 分享至 

  • xImage
  •  

題目

https://ithelp.ithome.com.tw/upload/images/20250923/20178158xZUgJH2dmX.png
它給了一個字串S,然後要找到第一個沒有重複出現的字母,然後回傳它的索引。
如果這個字母不存在的話就回傳-1。

想法

我想說可以跟上一題用一樣的方法,因為他們都一樣是在記字母次數的。所以一樣創一個陣列去記a-z字母出現的次數,只要出現一次那個字母的位置就+1,然後最後照字串的順序把次數從陣列裡拉出來,如果跑到第一個次數=1的就回傳它的索引,都沒有的話就回傳-1。

程式碼

class Solution {
    public int firstUniqChar(String s) {
        int[] count = new int[26];
        
        //記數
        for(int i=0; i<s.length(); i++){
            count[s.charAt(i) -'a']++;
        }
        
        //如果次數=1,回傳索引
        for(int i=0; i<s.length(); i++){
            if(count[s.charAt(i) -'a']==1){
                return i;
            }
        }
        return -1;
    }
}

執行成功畫面
https://ithelp.ithome.com.tw/upload/images/20250923/2017815827SBi4oPbx.png


上一篇
30天LeetCode挑戰紀錄-DAY8. 制定第二週目標、Valid Anagram
系列文
leetcode解題學習java9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言