讨论/算法和数据结构/题库第14题,有大哥来帮帮忙的,实在是没招了/
题库第14题,有大哥来帮帮忙的,实在是没招了

下面是错误信息,这个例子我在eclipse上可以运行成功,到leetcode上就不行了

image.png

在leetcode的Playground中又出现下面的错误,然后我就懵了

image.png

这是代码

class Solution {
    public String longestCommonPrefix(String[] strs) {
        //定义公共部分
		String tempString = "";
		boolean flag = true;
		
		//判断字符数组为空和数组中的字符串为空,都会导致越界问题
		if(strs.length == 0 || strs[0] == ""){
			return tempString ;		
		}
        
        for(int i = 0 ; i < strs.length; i++){
            if(strs[i] == "")
            return tempString ;
        }
		
		for (int i = 0; flag ; i++) { //这里要考虑如果相同前缀很长的情况
			
			 //临时变量固定需要比较的字符串
			 tempString = strs[0].substring(0, i+1);
			 
			 //拿临时变量逐一比较后面的每一个字符串
			 for (int j = 1; j < strs.length; j++) {
				//判断字符是否相同 
				 
				if(!(tempString.equals(strs[j].substring(0, i+1)))){
					flag = false;
					break;
				}
			}
			 
			 //判断是否比较失败
			 if(!flag){
				 //防止数组越界
				 if(i == 0){
					 tempString = "";
				  //判断失败,将tempString重新赋值
				 }else{
					 tempString = strs[0].substring(0, i);
					 break;//记着加break跳出外层循环
				 }
			 }
		}
		return tempString;
    }
}
展开讨论
wzs997发起于 2019-11-19

你越界了,代码里第二个for循环条件考虑不全面,有可能会死循环

1
展开全部 4 讨论