cubegao

Swift.第一个只出现一次的字符

2016-04-02

题目描述:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出‘b’。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import Foundation

class For35Solution {
func onlyOneFind(_ s: String) -> Character {

var keySorts = [Character]()
var hashMap = [Character : Int]()

let strings = Array(s)

for str in strings {

if hashMap.keys.contains(str) {
hashMap.updateValue(hashMap[str]! + 1, forKey: str)
}else {
keySorts.append(str)
hashMap.updateValue(1, forKey: str)
}
}

for str in keySorts {

if hashMap[str] == 1 {
return str
}
}

return Character("")
}
}

算法思想:用hashmap存,然后按顺序遍历一次,第一个等于1的就是结果。

github地址:https://github.com/cubegao/LeetCode

Tags: 算法

扫描二维码,分享此文章