最长公共前缀

#include<stdio.h>
#include<string.h>
char strs[1010][1010];
int cnt=0,res=0;
char ans[100];
int main()
{
    while(scanf("%s",strs[++cnt])!=EOF);
 	--cnt;//这样保证了cnt的值就为输入字符串的数量,因为EOF也占用一个 
 	char s[1010];
	for (int i=0;i<= 1010; i ++)//第一层循环是代表了长度 
	{
		int f = 1;//和flag的功能一样,就是判断不满足的情况跳出循环的 
		if(strlen(strs[1]) == i) f = 0; //这个地方判断字符串的长度是否到头了,如果到头了就不存在什么所谓的公共前缀了 
		for (int j = 2; j <= cnt; j ++) //再套入一个循环,进行接下来的判断 
		{
			if(strlen(strs[j]) == i) f = 0;
			if(strs[j][i] != strs[j - 1][i]) f = 0; //每一个字符串再跟上一个的同一列的字符进行比较 
		}
		if(f == 0) break;
		s[++res] = strs[1][i];
	}
	for(int i=1;i<=res;i++) printf("%c", s[i]);
	return 0;	
}
 

虽然是在大佬帮助下完成的,但是我对二维字符串的输入有了一定的认识(二位字符串的输入一直不太会555),嗯,先这样吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值