题解 | #最长公共前缀#
最长公共前缀
https://www.nowcoder.com/practice/28eb3175488f4434a4a6207f6f484f47
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param strs string字符串一维数组 * @param strsLen int strs数组长度 * @return string字符串 *///整体思路是从第一列开始比较,(要考虑空数组),一列比完要换下以列 char* longestCommonPrefix(char** strs, int strsLen ) { // write code here if(strsLen==0) { return strs; } int i=0,j=0;//初始化i,j char flag=strs[0][i];//从第一行开始 while(flag) {//对比其他行同一列字母是否相同 for(j=0;j<strsLen;j++) { if(strs[j][i]!=flag)//一旦有字符不同,就终止循环 { break; } } //如果j小于字符串长度,则跳出while循环 if(j<strsLen) { break; }//如果前面没有跳出循环,则++i,flag变为下一个字符串 flag=strs[0][++i]; } strs[0][i]='\0'; return strs[0]; }