leetcode 14题
题目描述:
编写一个函数来查找字符串数组中的最长公共前缀
如果不存在公共前缀,返回空字符串 “”
解题代码:
class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0 ){
return "";
}
int l = strs[0].length();
int s = strs.length;
for (int i = 0; i < l; i++) {
char a = strs[0].charAt(i);
for (int j = 1; j < s; j++) {
if (i == strs[j].length() || strs[j].charAt(i) != a){
return strs[0].substring(0,i);
}
}
}
return strs[0];
}
}
思路:一层嵌套循环 用第一个字符串里的每个字符去和后面字符串的比较。
回顾:charAt 和 substring
验证过程:
package no14;
//编写一个函数来查找字符串数组中的最长公共前缀
// 如果不存在公共前缀,返回空字符串 ""
class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0 ){
return "";
}
int l = strs[0].length();
int s = strs.length;
for (int i = 0; i < l; i++) {
char a = strs[0].charAt(i);
for (int j = 1; j < s; j++) {
if (i == strs[j].length() || strs[j].charAt(i) != a){
return strs[0].substring(0,i);
}
}
}
return strs[0];
}
}
public class No14{
public static void main(String[] args) {
Solution solution = new Solution();
String a = solution.longestCommonPrefix(new String[]{"ddsfsf","ddgfhdf","ddhhhh"});
System.out.println(a);
}
}