关于acm程序设计书中题目 #B第二题
来源:互联网 发布:37蓝月翅膀升级数据 编辑:程序博客网 时间:2024/04/29 11:43
这次的题都是英文题,读的时候依然生涩难懂,尤其是刚上来从第一题开始看,连谷歌翻译都用上了就是觉得迷迷糊糊,干脆就把这题扔下了,找起简单点的先做。
#B 第二题:
第二题要求编出一个字典,一个字符串与另一个字符串要刚好对应。
做题时不熟悉map容器的用法,我最开始的想法 一是建一个string数组,用getline存入一整行,将字典存储。在调用时用find()函数循环查找。二是建立两个string数组,
使他们的每个元素对应,将字典存储。调用时用compare()函数循环比较筛选出来。
写出来代码如下:
#include<iostream>
#include<string>
using namespace std;
#include<cstdio>
int main()
{
string a[10005];
string b[100],c[100];
int i=0,j=0,k,m;
while(getline(cin,a[i]))
{
if(a[i].size()==0) break;
i++;
}
while(getline(cin,b[j]))
{
if(b[j].size()==0) break;
for(k=0;k<i;k++)
{
if(a[k].find(b[j])!=string::npos)
{
m=a[k].find(b[j]);
c[j]=a[k].substr(0,m);
}
else c[j]="eh";
}
j++;
}
for(i=0;i<j;i++)
cout<<c[i]<<endl;
return 0;
}
#B 第二题:
第二题要求编出一个字典,一个字符串与另一个字符串要刚好对应。
做题时不熟悉map容器的用法,我最开始的想法 一是建一个string数组,用getline存入一整行,将字典存储。在调用时用find()函数循环查找。二是建立两个string数组,
使他们的每个元素对应,将字典存储。调用时用compare()函数循环比较筛选出来。
写出来代码如下:
#include<iostream>
#include<string>
using namespace std;
#include<cstdio>
int main()
{
string a[10005];
string b[100],c[100];
int i=0,j=0,k,m;
while(getline(cin,a[i]))
{
if(a[i].size()==0) break;
i++;
}
while(getline(cin,b[j]))
{
if(b[j].size()==0) break;
for(k=0;k<i;k++)
{
if(a[k].find(b[j])!=string::npos)
{
m=a[k].find(b[j]);
c[j]=a[k].substr(0,m);
}
else c[j]="eh";
}
j++;
}
for(i=0;i<j;i++)
cout<<c[i]<<endl;
return 0;
}
我认为这两个思路并没有什么错误,但是从算法的角度来讲,这肯定不好的,无论哪一个循环起来都太费时了,远不如map来的简单。
在一个我误解了题意,当成了先输入n行在输出n行。
使用map就简单了许多,至于要将map定义为两个string类型的映射,分别存储两种语言就好,调用时也省去了循环,更加快捷。
代码如下:
在一个我误解了题意,当成了先输入n行在输出n行。
使用map就简单了许多,至于要将map定义为两个string类型的映射,分别存储两种语言就好,调用时也省去了循环,更加快捷。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
map<string,string>m;
string a,ai,bi;
int ii,n;
while(getline(cin,a))
{
if(a=="") break;
n=a.size();
ii=a.find(" ");
ai=a.substr(0,ii);
bi=a.substr(ii+1,n-ii);
m[bi]=ai;
}
while(getline(cin,ai))
{
if(m.count(ai))
cout<<m[ai]<<endl;
else cout<<"eh"<<endl;
}
return 0;
}
2 0
- 关于acm程序设计书中题目 #B第二题
- 《ACM程序设计》书中题目B 第二题 fatmouse的语言
- ACM程序设计 书中题目 B
- ACM程序设计书中题目B
- 《ACM程序设计》书中题目B-2
- 《ACM程序设计》书中题目--problem b
- 《ACM程序设计》书中题目 B
- 《ACM程序设计》书中题目―B
- 《ACM程序设计》书中题目B
- 《ACM程序设计》书中题目X 第二十四题 电话号码
- 关于acm程序设计书中题目 #H 第8题
- 《ACM程序设计》书中题目 B-02 FatMouse word
- ACM程序设计书中题目--B(字典问题)
- 《ACM程序设计》书中题目Z 第二十六题 判断首字母缩写是相同
- 《ACM程序设计》书中题目Y 第二十五题 看和说
- 《ACM程序设计》书中题目
- 关于acm程序设计书中题目 #J #K #L
- 关于acm程序设计书中题目 #M #N #O
- 消除尾一
- 使用HashSet 存储自定义对象,为什么需要重写hashCode()和equals()?
- jQuery对象与DOM对象
- 调整整形数组奇数和偶数的位置
- 2014第五届蓝桥杯预赛试题本科c++奇怪的分式
- 关于acm程序设计书中题目 #B第二题
- 死锁
- WINDOWS和LINUX的内存防护机制
- KMP
- BoomBoomBoom
- [JQuery]如何让表格奇偶行显示不同背景色
- 浅谈JavaScript重写alert()方法
- fragment 中 切换主题
- 更改MySql数据库存放路径