33,311
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <cstdlib>
#include <cstring>
int main()
{
int n;
scanf("%d", &n);
char pStr[9][101];
for (size_t i = 0; i < n; i++)
{
scanf("%s", pStr[i]);
}
for (size_t i = 0; i < n; i++)
{
bool flag = true;
char *pOfP = strchr(pStr[i], 'P');
char *pOfT = strchr(pStr[i], 'T');
char *pOfEnd;
if (!pOfP || !pOfT)
{
flag = false;
}
if (flag)
{
//保存尾指针
for (pOfEnd = pStr[i]; *pOfEnd != '\0'; pOfEnd++);
char a[101] = { '\0' };
char b[101] = { '\0' };
char c[101] = { '\0' };
//保存a,b,c长度的长度
int na = (pOfP - 1) - pStr[i] + 1;
int nb = (pOfT - 1) - (pOfP + 1) + 1;
int nc = (pOfEnd - 1) - (pOfT + 1) + 1;
//判断nb>0
if (nb < 1)
{
flag = false;
}
//判断nc=na*nb
if (nc != na*nb)
{
flag = false;
}
//保存a,b,c
strncpy(a, pStr[i], na);
strncpy(b, pOfP + 1, nb);
strncpy(c, pOfT + 1, nc);
//判断a是不是全A
if (flag)
{
for (size_t j = 0; j < na; j++)
{
if (*(pStr[i] + j) != 'A')
{
flag = false;
break;
}
}
}
//判断b是不是全A
if (flag)
{
for (size_t j = 0; j < nb; j++)
{
if (*(pOfP + 1 + j) != 'A')
{
flag = false;
break;
}
}
}
//判断c是不是全A
if (flag)
{
for (size_t j = 0; j < nc; j++)
{
if (*(pOfT + 1 + j) != 'A')
{
flag = false;
break;
}
}
}
}
//打印结果
if (flag)
{
printf("YES\n");
}
else
{
printf("NO\n");
}
}
system("pause");
return 0;
}
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
size_t n;
cin >> n;
string str[9];
for (size_t i = 0; i < n; i++)
{
cin >> str[i];
}
for (size_t i = 0; i < n; i++)
{
bool flag = true;
size_t posOfP = str[i].find("P");
size_t posOfT = str[i].find("T");
if (-1 == posOfP || -1 == posOfT)
{
flag = false;
}
if (flag)
{
//保存a,b,c的长度
int na = posOfP;
int nb = (posOfT - 1) - (posOfP + 1) + 1;
int nc = (str[i].length() - 1) - (posOfT + 1) + 1;
//判断nb>0
if (nb < 1)
{
flag = false;
}
//判断nc=na*nb
if (nc != na*nb)
{
flag = false;
}
//保存a,b,c
string a = str[i].substr(0, na);
string b = str[i].substr(posOfP + 1, nb);
string c = str[i].substr(posOfT + 1, nc);
//判断a是不是全A
if (flag)
{
for (size_t j = 0; j < na; j++)
{
if (a[j] != 'A')
{
flag = false;
break;
}
}
}
//判断b是不是全A
if (flag)
{
for (size_t j = 0; j < nb; j++)
{
if (b[j] != 'A')
{
flag = false;
break;
}
}
}
//判断c是不是全A
if (flag)
{
for (size_t j = 0; j < nc; j++)
{
if (c[j] != 'A')
{
flag = false;
break;
}
}
}
}
//打印结果
if (flag)
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
}
system("pause");
return 0;
}