【LeetCode】14.最长公共前缀
具体算法如下:
从左到右遍历 strs 的每一列。
设当前遍历到第 j 列,从上到下遍历这一列的字母。
设当前遍历到第 i 行,即 strs[i][j]。如果 j 等于 strs[i] 的长度,或者 strs[i][j]
=strs[0][j],说明这一列的字母缺失或者不全一样,那么最长公共前缀的长度等于 j,返回 strs[0] 的长为 j 的前缀。
如果没有中途返回,说明所有字符串都有一个等于 strs[0] 的前缀,那么最长公共前缀就是 strs[0]。
代码:
char* longestCommonPrefix(const char** strs, int strsSize)
{ char* s0 = strs[0];for (int j = 0; s0[j]; j++) {for (int i = 0; i < strsSize; i++) {if (strs[i][j] != s0[j]) {s0[j] = '\0';return s0;}}}return s0;}