https://leetcode-cn.com/problems/longest-common-prefix/description/
题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例
输入: ["flower","flow","flight"]
输出: "fl"
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
思路
1.考虑输入为空的情况;
2.以输入字符串数组的第一个字符串为标杆,其每一位与后面字符串的每一位比较;
3.如何跳出两层for循环;
- 直接return
- 定义一个boolean类型的变量来控制
4.String、StringBuffer、StringBuilder的区别
String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)
代码
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs.length==0){
return "";
}
StringBuffer s = new StringBuffer();
String s1 = strs[0];
for (int i = 0; i < s1.length(); i++) {
boolean flag= false;
for (int j = 0; j < strs.length; j++) {
if (i >= strs[j].length() || s1.charAt(i) != strs[j].charAt(i)) {
// return s.toString();
flag=true;
break;
}
}
if(flag){
break;
}
s.append(s1.charAt(i));
}
return s.toString();
}
}
网友评论