关于字符串的最长前缀匹配
学习数组的部分对二维字符数组一直不熟悉
导致一直没有思路
当然这也引出对字符型指针思考
当然要恶补一下相关知识点哈
编写一个函数来查找字符串数组中的最长公共前缀。
例题
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
分析字符串对应特点
结合行列
abcdef
abcd
abc
思路
得出以第一个字符长度为列数范围 数组长度为行数范围
控制列数 调整行数
再进行每一行某列的筛选 ,,即列数在for循环外头行数在里头
而最精华的部分是输出前缀
利用’\0’停止字符对无法匹配时的那一列对应字符 ,,, 附上停止字符
再进行返回前缀字符
源代码
c
har * longestCommonPrefix(char ** strs, int strsSize){
int j;
int i;
if(strsSize==0){
return "";
}
for(j=0;j<strlen(strs[0]);j++){
for(i=1;i<strsSize;i++){
if(strs[0][j]!=strs[i][j]){
strs[0][j]='\0';
break;
}
}
}
return strs[0];