PATB1047: 输出PATest
【思路】:
设置字典为PATEST,同时设置HAsh来记录dict的次数 ,两者是一一对应的;
两个数组的遍历 两个for循环即可,
for (int i = 0; i < s.size(); i++)
{
for (int j = 0; j < 6; j++)
{
if (dict[j] == s[i])
{
hash_dict[j]++;
count++;
}
}
}
一个字符串的的分部分输出模板
//循环输出控制
while (count > 0){ ///1总的控制条件 控制接头在count--;
for (int i = 0; i < 6; i++) ///1部分的控制条件
{
if (hash_dict[i] > 0) //控制接头在 hash_dict[i]--
{
cout << dict[i];
hash_dict[i]--; //部分的条件调整
count--; //总的调整
}
}
}
【参考答案】
void PATB1043(){
string s;
cin >> s;
//设置字典为PATEST,同时设置HAsh来记录dict的次数;
string dict = "PATest";
int hash_dict[6] = {0};
int count = 0;
for (int i = 0; i < s.size(); i++)
{
for (int j = 0; j < 6; j++)
{
if (dict[j] == s[i])
{
hash_dict[j]++;
count++;
}
}
}
//循环输出控制
while (count > 0){ ///1总的控制条件 控制接头在count--;
for (int i = 0; i < 6; i++) ///1部分的控制条件
{
if (hash_dict[i] > 0) //控制接头在 hash_dict[i]--
{
cout << dict[i];
hash_dict[i]--; //部分的条件调整
count--; //总的调整
}
}
}
}