一支彩色铅笔 2022-04-10 13:55 采纳率: 100%
浏览 41
已结题

PAT 乙级1003 测试点四出错 20分拿了18分

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

#include
using namespace std;
#include
#include

int startA(string a)
{
for (int i = 0; i < a.size(); i++)
{
if (a[i] == 'P')
{
return i;
}
}
}

int middleA(string a, int b)
{
int j = 0;
for (int i = (b + 1); i < a.size(); i++)
{
if (a[i] == 'T')
{
return j;
}
j++;
}
}

bool check(string a)
{
for (int i = 0; i < a.size(); i++)
{
if (a[i] != 'P' && a[i] != 'A' && a[i] != 'T')
{
return false;
}
}
return true;

}

int main()
{
int n;
cin >> n;
vector V;
for (int j = 1; j <= n; j++)
{
string temp;
cin >> temp;
V.push_back(temp);
}

for (vector<string>::iterator it = V.begin(); it != V.end(); it++)
{
    int a = startA((*it));
    /*cout << "前面A有"<<a << endl;*/

    if (check((*it)))
    {
   
    int mid=middleA((*it), a);
    /*cout <<"中间A有"<< mid << endl;*/
    if (mid == 0)
    {
        cout << "NO" << endl;
        continue;
    }
    if (a * mid == ((*it).size() - (a + mid + 2)))
    {
        cout<<"YES"<<endl;
    }
    else
    {
        cout << "NO" << endl;
    }

    }
    

    else
    {
        cout << "NO" << endl;
    }

}



return 0;

}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

给我显示测试点四不正确,测试的结果都是对的,我这边哪里有问题?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 4月18日
    • 创建了问题 4月10日