0%

20220627

最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 “”。

示例 1:

输入:strs = [“flower”,”flow”,”flight”]

输出:”fl”

示例 2:

输入:strs = [“dog”,”racecar”,”car”]

输出:””

解释:输入不存在公共前缀。

提示:

  • 1 <= strs.length <= 200
  • 0 <= strs[i].length <= 200
  • strs[i] 仅由小写英文字母组成

题解

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
31
32
impl Solution {
pub fn longest_common_prefix(strs: Vec<String>) -> String {
let mut result = String::from("");
let mut index = 0;
'looper: loop {
let mut _temp = "";
for str in &strs {
if str.len() == 0 {
break 'looper;
}
if index >= str.len() {
break 'looper;
}
let c_val = &str[index..index + 1];
if c_val == "" {
break 'looper;
}
if _temp == "" {
_temp = c_val;
continue;
}
if _temp != c_val {
break 'looper;
}
_temp = c_val;
}
result.push_str(&strs.get(0).unwrap()[index..index + 1]);
index += 1;
}
result
}
}

解释

  • 找出所有字符串的第{index}个元素,判断是否全部相等。
  • 如果相等放入结果中,继续循环
  • 不相等跳出外层循环,返回结果
  • 0ms,2.1mb

来源