题解 | #最长公共前缀#
最长公共前缀
https://www.nowcoder.com/practice/28eb3175488f4434a4a6207f6f484f47
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param strs string字符串一维数组 * @param strsLen int strs数组长度 * @return string字符串 */ char* longestCommonPrefix(char** strs, int strsLen ) { if(strsLen == 1) { return strs[0]; } // write code here int lenMin = 5005; char* ans = (char*)calloc(5005, sizeof(char)); int index = 0; for(int i = 0; i < strsLen; i++) { if(lenMin >= strlen(strs[i])) { lenMin = strlen(strs[i]); } } int j = 0; int flag = 0; // 先遍历列 for(int i = 0; i < lenMin; i++) { // 再遍历行 for(int j = 0; j < strsLen-1; j++) { flag = 0; if(strs[j][i] == strs[j+1][i]) { flag = 1; } else { //这步十分关键:可以解决【"abcd","aecd","abc"】中的“e” break; } } if(flag) { ans[index++] = strs[j][i]; } } return ans; }