题目
ACM PKU 1002题总是WA
各种测试数据都试过了 没有发现问题 可是C++提交上去 又是WA
#include
#include
#include
#include
using namespace::std;
string directory[100];
string result[100];
int len = 0;
int resLen = 0;
int isaTel(string &tel)
{
string::iterator pos = tel.begin();
while (pos = tel.end())
{
if ((*pos) == '-')
{
tel.erase(pos);
}
else
{
pos++;
}
}
if (tel.size() = 7)
{
return 0;
}
for (pos = tel.begin(); pos = tel.end(); pos++)
{
if isalnum(*pos))
{
return 0;
}
else
{
if (islower(*pos))
{
return 0;
}
else
{
if (*pos == 'Q' || *pos == 'Z')
{
return 0;
}
}
}
}
pos = tel.begin() + 3;
tel.insert(pos,'-');
tel += " 1";
return 1;
}
void transfer(string &tel)
{
for (int i = 0; i < 8; i++)
{
switch (tel[i])
{
case 'A':
tel[i] = '2';
break;
case 'B':
tel[i] = '2';
break;
case 'C':
tel[i] = '2';
break;
case 'D':
tel[i] = '3';
break;
case 'E':
tel[i] = '3';
break;
case 'F':
tel[i] = '3';
break;
case 'G':
tel[i] = '4';
break;
case 'H':
tel[i] = '4';
break;
case 'I':
tel[i] = '4';
break;
case 'J':
tel[i] = '5';
break;
case 'K':
tel[i] = '5';
break;
case 'L':
tel[i] = '5';
break;
case 'M':
tel[i] = '6';
break;
case 'N':
tel[i] = '6';
break;
case 'O':
tel[i] = '6';
break;
case 'P':
tel[i] = '7';
break;
case 'R':
tel[i] = '7';
break;
case 'S':
tel[i] = '7';
break;
case 'T':
tel[i] = '8';
break;
case 'U':
tel[i] = '8';
break;
case 'V':
tel[i] = '8';
break;
case 'W':
tel[i] = '9';
break;
case 'X':
tel[i] = '9';
break;
case 'Y':
tel[i] = '9';
break;
default:
break;
}
}
}
int stringCpy(const string &str1,const string &str2)
{
for (int i = 0; i < 8; i++)
{
if (str2[i] = str1[i])
{
return 0;
}
}
return 1;
}
void Add(const string &tel)
{
bool exits = false;
int i;
for (i = 0; i < len; i++)
{
if (stringCpy(tel,directory[i]))
{
directory[i][9]++;
exits = true;
break;
}
}
if exits)
{
directory[i] = tel;
len++;
}
}
void fastDivid()
{
for (int i = 0; i < len; i++)
{
if (directory[i][9] > '1')
{
result[resLen] = directory[i];
resLen++;
}
}
}
}
int main()
{
int num_tels;
string telnum;
cin >> num_tels;
for (int i = 0; i < num_tels; i++)
{
cin >> telnum;
if (isaTel(telnum))
{
transfer(telnum);
Add(telnum);
}
}
fastDivid();
sort(result,result + resLen);
for (int j = 0; j < resLen; j++)
{
for (int k = 0; k < 9; k++)
{
cout
各种测试数据都试过了 没有发现问题 可是C++提交上去 又是WA
#include
#include
#include
#include
using namespace::std;
string directory[100];
string result[100];
int len = 0;
int resLen = 0;
int isaTel(string &tel)
{
string::iterator pos = tel.begin();
while (pos = tel.end())
{
if ((*pos) == '-')
{
tel.erase(pos);
}
else
{
pos++;
}
}
if (tel.size() = 7)
{
return 0;
}
for (pos = tel.begin(); pos = tel.end(); pos++)
{
if isalnum(*pos))
{
return 0;
}
else
{
if (islower(*pos))
{
return 0;
}
else
{
if (*pos == 'Q' || *pos == 'Z')
{
return 0;
}
}
}
}
pos = tel.begin() + 3;
tel.insert(pos,'-');
tel += " 1";
return 1;
}
void transfer(string &tel)
{
for (int i = 0; i < 8; i++)
{
switch (tel[i])
{
case 'A':
tel[i] = '2';
break;
case 'B':
tel[i] = '2';
break;
case 'C':
tel[i] = '2';
break;
case 'D':
tel[i] = '3';
break;
case 'E':
tel[i] = '3';
break;
case 'F':
tel[i] = '3';
break;
case 'G':
tel[i] = '4';
break;
case 'H':
tel[i] = '4';
break;
case 'I':
tel[i] = '4';
break;
case 'J':
tel[i] = '5';
break;
case 'K':
tel[i] = '5';
break;
case 'L':
tel[i] = '5';
break;
case 'M':
tel[i] = '6';
break;
case 'N':
tel[i] = '6';
break;
case 'O':
tel[i] = '6';
break;
case 'P':
tel[i] = '7';
break;
case 'R':
tel[i] = '7';
break;
case 'S':
tel[i] = '7';
break;
case 'T':
tel[i] = '8';
break;
case 'U':
tel[i] = '8';
break;
case 'V':
tel[i] = '8';
break;
case 'W':
tel[i] = '9';
break;
case 'X':
tel[i] = '9';
break;
case 'Y':
tel[i] = '9';
break;
default:
break;
}
}
}
int stringCpy(const string &str1,const string &str2)
{
for (int i = 0; i < 8; i++)
{
if (str2[i] = str1[i])
{
return 0;
}
}
return 1;
}
void Add(const string &tel)
{
bool exits = false;
int i;
for (i = 0; i < len; i++)
{
if (stringCpy(tel,directory[i]))
{
directory[i][9]++;
exits = true;
break;
}
}
if exits)
{
directory[i] = tel;
len++;
}
}
void fastDivid()
{
for (int i = 0; i < len; i++)
{
if (directory[i][9] > '1')
{
result[resLen] = directory[i];
resLen++;
}
}
}
}
int main()
{
int num_tels;
string telnum;
cin >> num_tels;
for (int i = 0; i < num_tels; i++)
{
cin >> telnum;
if (isaTel(telnum))
{
transfer(telnum);
Add(telnum);
}
}
fastDivid();
sort(result,result + resLen);
for (int j = 0; j < resLen; j++)
{
for (int k = 0; k < 9; k++)
{
cout
提问时间:2021-04-01
答案
北大poj的1002,送上我丑陋的代码,夜深了,困了,睡觉去了,要是lz有疑惑,给我留言吧!(我是看的北大郭伟和李文新出的那本小红书上面的方法做的)#include using namespace std;char realnumble[100000][9];char arr[50]...
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
热门考点
- 1都作名词时fancy 和 fantasy 有什么区别?
- 2做一个密封的长方体玻璃箱,里面盛水.从里面量长30厘米,宽15厘米,高16厘米,水深8厘米,如果把箱子的左侧面作为底面放在桌面上,那么水深多少?
- 3请你举几个实例说明地球是个球体
- 4通过地球上的经度和纬度,人们可以确定一个地点在地球上的位置._.(判断对错)
- 58.如图,在Rt△ABC中,∠ACB=90°,AB=2BC,在直线BC或AC上取一点P,使得△PAB为等腰三角形,则符合条件
- 6将amL的CO2通过足量的Na2O2后,再通入bmL的NO,发现剩余气体的体积为(a+b)/2,则CO2和NO的体积比不可能是( )
- 7结合平时的阅读积累回答:为什么说霍金是一位非凡的科学家?
- 8如何求关于绝对值的方程的最大最小问题如:50|X-8|-40|X-6|+|X-6
- 9中国东西部高,东部低得地势对交通,气候,经济,温度,河流有什么影响?
- 10在比例尺是1:5000000的地图上量得广州到深圳的距离是2.2cm 广州到深圳的实际距离大约是多少km?3.北京