1、假如说有一串数字,11位,判断里面是否存在ABBA这样的数字?
bool IsAABB(int* num, int len)
{
bool b = false;
int j = 0;
for (int i = 0; i < len; i++)
{
if (num[i] == num[i+1])
{
if (++j > 1)
{
b = true;
break;
}
if (++j > 0)
{
i += 2;
}
}
}
return b;
}
bool IsABAB(int* num, int len)
{
bool b = false;
int j = 0;
for (int i = 0; i < len; i++)
{
if (num[i] == num[i+2])
{
if (++j > 1)
{
b = true;
break;
}
}
}
return b;
}
//连续
bool IsContinuous(int* pCards, int nLen)
{
if (pCards == NULL || nLen <= 0)
return false;
int i = 0;
int j = 0;
int preCard = pCards[i];
for (i = 1; i < nLen; i++)
{
int curCard = pCards[i];
if (preCard == curCard) //与前一张卡号比较
{
if (++j > 1)
{
return true;
}
}
preCard = curCard;
}
return false;
}
//递增
bool IsUpSeries(int* num, int len)
{
bool b = false;
int j = 0;
for (int i = 0; i < len; i++)
{
if (num[i] == num[i+1] - 1)
{
if (++j > 1)
{
b = true;
break;
}
}
}
return b;
}
//递减
bool IsDownSeries(int* num, int len)
{
bool b = false;
int j = 0;
for (int i = 0; i < len; i++)
{
if (num[i] == num[i+1] + 1)
{
if (++j > 1)
{
b = true;
break;
}
}
}
return b;
}
bool IsABBA(int* num, int len)
{
bool b = false;
int j = 0;
for (int i = 0; i < len; i++)
{
if (num[i] == num[i+3])
{
if (num[i+1] == num[i+2])
{
b = true;
break;
}
}
}
return b;
}
int main()
{
int sNum[11] = {13968862123};
bool isGood = IsABBA(sNum, iLen);
if (isGood)
{
printf("yes");
}
else
{
printf("no");
}
}