编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串。
题中说明仅有小写英文字母组成,且仅判断前缀相同即可。
所以从每一个字符串的第一个字符判断是否相同。
“flower”
“flow”
“flight”
可以看做二维数组,依次从上到下从左到右看,纵向比较是否相同。
比较到不相同的字符后,返回前一个字符。
if (strs.length == 0){ return ""; } //行数 返回的字符串长度 //列数 第一个字符串的长度 int rows = strs.length; int lie = strs[0].length(); for (int i = 0;i < lie; i++){ char first = strs[0].charAt(i); for (int j = 1;j < rows;j++){ if (strs[j].length() == i || strs[j].charAt(i) != first) { //substring(i,j)获取子串是[i,j)区间,左闭合右开的 return strs[0].substring(0, i); } } } return strs[0]; }结果
-
作者:麦克猫Cat
-
本文版权归作者和CSDN共有,欢迎交流
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)