题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”
示例 2:
输入:strs = [“dog”,“racecar”,“car”]
输出:“”
解释:输入不存在公共前缀。
提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] 仅由小写英文字母组成
解题方法
- C
char * longestCommonPrefix(char ** strs, int strsSize) { if(strsSize == 0) // 无字符串直接返回 { return ""; } /* 纵向扫描,以第一个字符串为匹配对象,并保存最长公共前缀 */ for(int i = 0; i < strlen(strs[0]); i++) // i 表示列 { for(int j = 1; j < strsSize; j++) // j 表示行 { if(strs[0][i] != strs[j][i]) // 依次判断是否匹配 { strs[0][i] = '\0'; // 匹配失败,得到公共前缀 } } } return strs[0]; }