0%

算法-字符串

+ 翻转单词顺序(简单)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
func reverseWords(s string) string {

s = strings.TrimSpace(s)

j := len(s)-1
i := j
res := []string{}
for i >= 0 {
for i >= 0 && s[i] != ' '{
i--
}
res = append(res, s[i+1:j+1])
for i >= 0 && s[i] == ' '{
i--
}
j = i

}

return strings.Join(res," ")
}

+ 罗马数字转整数(简单)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
func romanToInt(s string) int {
res := map[string]int{
"I": 1,
"V": 5,
"X": 10,
"L": 50,
"C": 100,
"D": 500,
"M": 1000,
}
sum := 0
for i := 0; i < len(s); i++ {
val := res[string(s[i])]
if i < len(s)-1 && val < res[string(s[i+1])] {
sum -= val
} else {
sum += val
}
}
return sum
}
给作者打赏,可以加首页微信,咨询作者相关问题!