文章目录
一、今日刷题
第二部分:字符串 – 第14题
跳转LeetCode
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”
示例 2:
输入:strs = [“dog”,“racecar”,“car”]
输出:""
解释:输入不存在公共前缀。
答案代码:
方法①:
自己写的代码,但运行有问题。
/**
* @author: LYZ
* @date: 2022/1/25 9:11
* @description:
*/
public class LongestCommonPrefix {
public static void main(String[] args) {
String[] strings = {"flower","flow","flight"};
LongestCommonPrefix longestCommonPrefix = new LongestCommonPrefix();
String ans = longestCommonPrefix.longestCommonPrefix(strings);
System.out.println(ans);
}
public String longestCommonPrefix(String[] strs) {
StringBuffer ans = new StringBuffer(strs[0]);
for (int i = 1; i < strs.length; i++) {
String s = strs[i];
StringBuffer tmp = new StringBuffer("");
for (int j = 0; j < strs[i].length(); j++) {
if (s.charAt(j) == ans.charAt(j)){
tmp.append(s.charAt(j));
} else {
break;
}
}
ans = tmp;
}
return ans.toString();
}
}
对内部for循环稍作调整后:正常运行了
package String;
/**
* @author: LYZ
* @date: 2022/1/25 9:11
* @description: 14.编写一个函数来查找字符串数组中的最长公共前缀。
* 如果不存在公共前缀,返回空字符串 ""。
*/
public class LongestCommonPrefix {
public static void main(String[] args) {
String[] strings = {"flower","flow","flight"};
LongestCommonPrefix longestCommonPrefix = new LongestCommonPrefix();
String ans = longestCommonPrefix.longestCommonPrefix(strings);
System.out.println(ans);
}
public String longestCommonPrefix(String[] strs) {
StringBuffer ans = new StringBuffer(strs[0]);
for (int i = 1; i < strs.length; i++) {
String s = strs[i];
StringBuffer tmp = new StringBuffer("");
for (int j = 0; j < Math.min(strs[i].length(), ans.length()); j++) {
if (s.charAt(j) == ans.charAt(j)){
tmp.append(s.charAt(j));
} else {
break;
}
}
ans = tmp;
}
return ans.toString();
}
}