今天的题目是这个:
/*编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
*
*/
/*解题思路:
*
*/
/*注意:
*
*/
/*总结:
- 1、
- foreach的语句格式:
for(元素类型t 元素变量x : 遍历对象obj){
引用了x的java语句;
}
这道题的可以用for(String str:strs){…}
或者是:for(int i=0;i<strs.length();i++){}
2、
str.startsWith(要查找的字符串)方法使用;返回的是布尔类型
如果字符串以指定的前缀开始,则返回 true;否则返回 false;
3、Java substring() 方法
substring() 方法返回字符串的子字符串。
public String substring(int beginIndex)或者
public String substring(int beginIndex, int endIndex)
*/
package A;
public class Solution_014 {
public static String longestCommonPrefix(String[] strs) {
//先将strs的空值情况写出来;
if (strs == null || strs.length == 0 ) return "defeat";
String reg = strs[0];
int count=0;
for (int i=0;i<strs.length;i++){
String str = strs[i];
count++;
System.out.println(count);
while (!str.startsWith(reg)) {
if (reg.length() == 1) {
return "defeat";
}
reg = reg.substring(0, reg.length()-1);
}
}
return reg;
}
public static void main(String[] args) {
String[] strs= {"linjianlin","linjiantan","linjisdf"};
System.out.println(longestCommonPrefix(strs));
}
}