387. First Unique Character in a Stringphp
返回給定字符串中第一個只出現了一次的單詞下標。
若沒有,則返回-1。數組
把遇到的單詞存進兩個數組。優化
一個用來記錄只出現了一次的數組A,另外一個記錄出現了不僅一次的數組B。.net
遍歷每一個字母,噹噹前字母存在與數組B時,表明該字母出現了不止一次,那麼忽略便可。
當不存在於數組B,而存在於數組A時,說明當前字母是第二次出現。那麼從數組A中刪除,並存入數組B。
不然說明當前字母是第一次出現,直接存入數組A便可。code
最終,返回第一個數組A的值。leetcode
<?php class Solution { /** * @param String $s * @return Integer */ function firstUniqChar($s) { $s = array_filter(str_split($s)); $a = []; $b = []; foreach($s as $k => $v){ if(!isset($b[$v])){ if(isset($a[$v])){ unset($a[$v]); $b[$v] = $k; } else{ $a[$v] = $k; } } } return count($a) ? current($a) : -1; } }
不過,這代碼也只超過了33.33%的提交。看來還有很大的優化空間。字符串
若以爲本文章對你有用,歡迎用愛發電資助。get