Leetcode-面试题50-第一次只出现一次的字符

Leecode-面试题50-第一个只出现一次的字符

思路:数组

题目描述

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。

1
2
3
4
5
s = "abaccdeff"
返回 "b"

s = ""
返回 " "

Solution:

  • 数组的使用比map快
    • 省去了扩容的时间
    • 省去了化为红黑树的时间

Java

Solution :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution{
public char firstUniqChar(String s){
int[] count = new int[256];

// 字符串变为数组
char[] chars = s.toCharArray();
System.out.println(chars);

// 遍历字符数组,统计每个位置的个数
for (char c : chars) {
count[c]++;
}

// 找到第一个只出现一次的字符
for (char c : chars) {
if (count[c] == 1){
return c;
}
}

// 找不到返回空字符串
return ' ';
}
}

Python

Solution :

1
2


打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2019-2022 Zhuuu
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信