Re: [闲聊] 每日LeetCode

楼主: yam276 ('_')   2024-02-05 17:51:20
※ 引述《JerryChungYC (JerryChung)》之铭言:
: https://leetcode.com/problems/first-unique-character-in-a-string
: 387. First Unique Character in a String
: 给一个字串s,找到第一个不重复的字符回传其索引,不存在则回传-1
: Example 1:
: Input: s = "leetcode"
: Output: 0
: Example 2:
: Input: s = "loveleetcode"
: Outpue: 2
: Example 3:
: Input: s = "aabb"
: Output: -1
思路:
哈希表建表
然后查1回传
use std::collections::HashMap;
impl Solution {
pub fn first_uniq_char(s: String) -> i32 {
let mut counts = HashMap::new();
for ch in s.chars() {
*counts.entry(ch).or_insert(0) += 1;
}
for (i, ch) in s.chars().enumerate(){
if let Some(&counts) = counts.get(&ch){
if counts == 1{
return i as i32;
}
}
}
-1
}
}
作者: wu10200512 (廷廷)   2024-02-05 17:52:00
跟我想的一样有一个循环解决的方法吗
楼主: yam276 ('_')   2024-02-05 17:56:00
我有想过双指针 但效率稀烂不用哈希表可以改建立26字长度阵列纪录次数从效率上只能两个for一个纪录一个寻找 只有一个 会O(n^2)
作者: ILoveErr (英梨梨我老婆)   2024-02-05 18:09:00
大师

Links booklink

Contact Us: admin [ a t ] ucptt.com