[LeetCode 14] LCP 最长字符串前缀匹配

 1 public class Solution {  2     public string LongestCommonPrefix(string[] strs) {  3         int len = strs.Length;  4 
 5         if(len == 0)  6             return "";  7 
 8         string result = "";  9         int minSize = 100000; 10         int minIndex = 0; 11 
12         if(len == 1){ 13             result = strs[0]; 14             return result; 15  } 16 
17         for(int i = 0; i < len; i++){ 18             int size = strs[i].Length; 19             if(size < minSize){ 20                 minSize = size; 21                 minIndex = i; 22  } 23  } 24 
25         for(int i = minSize; i >= 0; i--){ 26             result = strs[minIndex].Substring(0,i); 27 
28             int j = 0; 29             for(; j < len; j++){ 30                 if(j == minIndex) 31                     continue; 32                 string temp = strs[j].Substring(0,i); 33                 if(result != temp) 34                     break; 35  } 36             if(j == len) 37                 return result; 38  } 39         return result; 40  } 41 }

内层循环的这个continue,会跳事后面的语句可是j++会执行spa

而break不执行j++ ,也就是当前的result若是不是最长前缀,j的值就不会是len,.net

https://blog.csdn.net/NoMasp/article/details/49184355code

放一下这个大神的连接~他的解法提醒了我break和continue的用法。blog

书上说:string

break是跳过循环,而continue是跳过本次迭代。io

相关文章
相关标签/搜索