每日打卡,pta题目

给定一个长度不超过 104 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。

输入格式:

输入在一行中给出一个长度不超过 104 的、仅由英文字母构成的非空字符串。

输出格式:

在一行中按题目要求输出排序后的字符串。题目保证输出非空。

输入样例:

redlesPayBestPATTopTeePHPereatitAPPT
 

输出样例:

PATestPATestPTetPTePePee
 
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

#include<iostream>
using namespace std;
int main()
{
string c;
cin >> c;
string b = "";
for (int i = 0; i < c.size(); i++)
{
if (c[i] == 'P' || c[i] == 'A' || c[i] == 'T' || c[i] == 'e' || c[i] == 's' || c[i] == 't')
{
b += c[i];
}
}
int a[6]={0};
for (int i = 0; i < b.size(); i++)
{
if (b[i] == 'P')
{
a[0]++;
}
if (b[i] == 'A')
{
a[1]++;
}
if (b[i] == 'T')
{
a[2]++;
}
if (b[i] == 'e')
{
a[3]++;
}
if (b[i] == 's')
{
a[4]++;
}
if (b[i] == 't')
{
a[5]++;
}
}
int m = a[0];
for (int i = 1; i < 6; i++)
{

if (a[i] > m)
{
m = a[i];
}
}
for (int i = 0; i < m; i++)
{
if (a[0] != 0)
{
cout << "P";
a[0]--;
}
if (a[1] != 0)
{
cout << "A";
a[1]--;
}
if (a[2] != 0)
{
cout << "T";
a[2]--;
}
if (a[3] != 0)
{
cout << "e";
a[3]--;
}
if (a[4] != 0)
{
cout << "s";
a[4]--;
}
if (a[5] != 0)
{
cout << "t";
a[5]--;
}
}
return 0;
}

2:数据的间距问题(函数模板) 类point有三个数据成员:x、y和z, 分别代表x坐标、y坐标和z坐标,并有若干构造函数和一个重载-(减号,计算两点距离)的成员函数。 要求设计一个函数模板,

template < class T> double dist(T a, T b)

对int,float,point或者其他类型的数据,返回间距。

输入格式:

每一行为一个操作,每行的第一个数字为元素类型,1为整型元素,2为浮点型元素,3为point类型,若为整型元素,接着输入两个整型数据,若为浮点型元素,接着输入两个浮点型数据,若为point型元素,输入两个point型数据(x1 y1 z1 x2 y2 z2),输入0时标志输入结束。

输出格式:

对每个输入,每行输出一个间距值。

输入样例:

1 2 5
3 2 4 7 5 9 7
2 2.2 9.9
0
 

输出样例:

3
5.83095
7.7
 
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<iostream>
using namespace std;
this->y·=·y;
this->z·=·z;
}
double·operator-(Point·a)
{
double·p1,·p2,·p3;
p1·=·a.x·-·this->x;
p2·=·a.y·-·this->y;
p3·=·a.z·-·this->z;
return·(double)sqrt(p1·*·p1·+·p2·*·p2·+·p3·*·p3);
}
};
template·<·class·T>
double·dist(T·a,·T·b)
{
return·fabs(a·-·b);
}
int·main()
{
int·n;·vector<double>o;
while·(cin·>>·n·&&·n·!=·0)
{
if·(n·==·1)
{
int·a1,·a2;·double·a3;
cin·>>·a1·>>·a2;
a3·=·dist<int>(a1,·a2);
o.push_back(a3);
 
}
if·(n·==·2)
{
float·b1,·b2;·double·b3;
cin·>>·b1·>>·b2;
b3·=·dist<float>(b1,·b2);
 
o.push_back(b3);
}
if·(n·==·3)
{
double·n1,·n2,·n3,·n4,·n5,·n6;·double·c3;
cin·>>·n1·>>·n2·>>·n3·>>·n4·>>·n5·>>·n6;
Point·c1(n1,·n2,·n3);
Point·c2(n4,·n5,·n6);
c3·=·dist<Point>(c1,·c2);
o.push_back(c3);
}
}
for·(int·i·=·0;·i·<·o.size();·i++)
{
if·(i·!=·o.size()·-·1)
{
cout·<<·o[i]·<<·endl;
}
else
{
cout·<<·o[i];
}
}
}
goto语句模版:
goto FLAG;
......代码
FLAG:
作用跳过中间的代码.
 
posted @ 2023-05-23 18:25  赵千万  阅读(4)  评论(0编辑  收藏  举报