码迷,mamicode.com
首页 > 编程语言 > 详细

C语言 aabbcc、abc、fabc、aabc

时间:2014-10-21 02:10:57      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:io   ar   for   sp   amp   bs   size   har   c语言   

输入一个字符串,匹配字符串中连续出现的字符串、并且连续个数相等

如输入 aabbcc、abc、fabc、aabc、aabbc

分别输出yes还是no

 

#include<stdio.h>
#include<string.h>
void main()
{
/*
思路:输入一个字符串数组a,定义一个数组b[3]={1,0,0}(其用意是默认第一个是不需要匹配的)

*/
char a[]={‘f‘,‘a‘,‘a‘,‘a‘,‘b‘,‘d‘,‘c‘};

int b[3]={1,0,0};
int i = 0;
int f = 0;
int g = 0;
int h = 1;
printf("a===%d\n",sizeof(a));
for( i = 1 ; i< sizeof(a);i++)
{
printf("i====%d\n",i);
//如果a[i-1] == a[i],默认从a[0] == a[1]开始,相等就加一,相当于a[0]=‘a‘ == a[1]=‘a‘
if(a[i-1] == a[i]){
b[g] = ++h;
printf("b[%d]=%d\n",g,b[g]);
}
//此处只需要判断不相等
if((a[i-1] != a[i]) && (a[i-1]-a[i] == -1)){//&& a[i]-a[i+1] = 1
if( a[i-1]-a[i] == -1){
h = 1;
g = g+1;
b[g] = h;
}else{
if(g==0){
b[0] = 1;
b[1] = 0;
b[2] = 0;
}
if(g == 1){
b[0] = b[1];
b[1] = 0;
b[2] = 0;
}
if(g == 2){
b[0] = b[2];
b[1] = 0;
b[2] = 0;
}

h = 1;
g = 0;
}
}
printf("%d\n",b[0]);
printf("%d\n",b[1]);
printf("%d\n",b[2]);
printf("-----------------------------\n");
if(b[0] >= b[1] && b[1]== b[2] && b[2]>=1){
printf("yes\n");
break;
}

}

}

C语言 aabbcc、abc、fabc、aabc

标签:io   ar   for   sp   amp   bs   size   har   c语言   

原文地址:http://www.cnblogs.com/M-D-Luffy/p/4039305.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!