深信服2018秋招笔试题:

输入一个字符串,帮忙统计字符串里面的每个单词出现的次数,以及非法单词的次数。非法单词的定义为:包含数字(0-9)的单词

输入一个字符串,长度小于1000,输入的字符仅包含(0-9,a-z,A-Z, . , : ! )及空格。

输出按单词的字母进行排序,每行为 :

单词    单词出现次数

最后一行输出非法单词个数


实例1:

输入:

wow! Is wonderful!

输出:

Is 1

wonderful 1

wow 1

0


实例2:

输入:

abc bcd2 fe fe a3xd

输出:

abc 1

fe 2

2


代码如下:

#include<iostream>
#include<map>
#include<string>
#include<vector>using namespace std;
int main()
{string str;map<string, int>temp;getline(cin, str);int plow = 0, phigh = 0;string s = "";while (phigh < str.length()){if (str[phigh] == ' '){phigh++;plow = phigh;temp[s]++;s = "";continue;}else{s = s + str[phigh];if (phigh == str.length() - 1) temp[s]++;phigh++;}}vector<string>res;auto j = temp.begin();while(j != temp.end()){string tmp = j->first;int len = tmp.size();for (int i = 0; i < len; i++){if (!(tmp[i] >= 65 && tmp[i] <= 90 || tmp[i] >= 97 && tmp[i] <= 122)){if (tmp[i] >= 48 && tmp[i] <= 57){res.push_back(tmp);j = temp.erase(j);j--;break;}}else if (tmp[len-1] == 44 || tmp[len-1] == 46 || tmp[len-1] == 58 || tmp[len-1] == 33) {string new_tmp(tmp.begin(), tmp.end() - 1);int b = j->second;temp.insert(make_pair(new_tmp, b));j = temp.erase(j);j--;break;}}j++;}for (auto s = temp.begin(); s != temp.end(); s++){cout << s->first << " " << s->second << endl;}cout << res.size() << endl;system("pause");return 0;
}

主要是对问题的仔细分析!然后就是注意细节,特别是迭代器的失效问题,位置变换等问题!

深信服:输入一个字符串,帮忙统计字符串里面的每个单词出现的次数,以及非法单词的次数。非法单词的定义为:包含数字(0-9)的单词相关推荐

  1. Java——集合(输入一串字符串,统计字符串中每个字符出现的次数)

    A:案例演示 需求:输入一串字符串,统计字符串中每个字符出现的次数** 分析: 1,定义一个需要被统计字符的字符串 2,将字符串转化为字符数组,才能拿到每一个字符 3,定义双列集合存储字符串中字符以及 ...

  2. C# 输入一个三位数的字符串,输出为三位数的整数,并输出百位、十位、和个位

    C# 输入一个三位数的字符串,输出为三位数的整数,并输出百位.十位.和个位 以C# 语言编写,控制台应用程序运行 文章目录 C# 输入一个三位数的字符串,输出为三位数的整数,并输出百位.十位.和个位 ...

  3. 请编写程序,由键盘录入一个字符串,统计字符串中英文字母和数字分别有多少个。 比如:Hello12345World中字母:10个,数字:5个。

    package HomeWorks.Day.Day22;import java.nio.charset.StandardCharsets; import java.util.Scanner;publi ...

  4. java中如何输入一个字符(用字符串转换)

    java中的Scanner类中并没有包括单独输入char型字符的情况,但是我们可以通过输入一个长度仅为1的字符串,然后将字符串转换为char型字符,再用新的char型变量接收就好了. java源文件名 ...

  5. 【SQL开发实战技巧】系列(十):从拆分字符串、替换字符串以及统计字符串出现次数说起

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  6. python输入一个正整数、计算其各个位的数字之和_C语言程序设计:编写程序,输入一个正整数,统计该整数的位数并计算其各个数位上的数字之和。...

    点击查看C语言程序设计:编写程序,输入一个正整数,统计该整数的位数并计算其各个数位上的数字之和.具体信息 答:#include /*包含头文件*/void main() /*主函数*/{ int n, ...

  7. 输入一个正整数,统计整数中各位数字值为零的个数,并把该整数中各位上最大的数字值找出和零的个数组成一个新数字输出

    /*** 输入一个正整数,统计整数中各位数字值为零的个数,并把该整数中各位上最大的数字值找出和零的个数组成一个新数字输出*/import java.util.Scanner;public class ...

  8. C语言:从键盘输入一个长度不定的字符串[C_004]

    目录 背景: Solution: 方案一:那就不要字符串 方案二:动态申请内存 背景: 在很多时候,会遇到从外部按要求输入字符串的情形,有些是明确了长度,有些只是给定了最大长度,而有些没有规定长度.对 ...

  9. 【函数参数传递】编写一个函数,统计字符串中小写字母的个数,并把字符串中的小写字母转化成大写字母。

    字符串怎么存? 先把字符串中的小写字母统计出来,用strfun()这个函数.当功能比较复杂的时候就一步一步来做. 然后把数组传过来.数组名就是一个指针.需要一个返回值,来记录小写字母的个数,n=str ...

最新文章

  1. 西湖大学鞠峰组:环境微生物的宏基因组学实例与新发现
  2. mysql 分区表优化_Sql优化之Mysql表分区
  3. 云要闻 | 腾讯在华南建云计算基地;致敬Larry Roberts;华云数据在无锡拿了一个奖!...
  4. 时间复杂度和空间复杂度探究
  5. 数据库的架构设计与性能优化
  6. RequireJS进阶(一)
  7. 现有数据整合方案介绍
  8. Bootstrap系列之进度条(Progress)
  9. python 生成诸如A001 A002 ... A100这样的序列
  10. 浅谈估值模型:实现GGM的理想国(附代码)
  11. Java架构师大型互联网高级技术视频教程
  12. Android开发总结:个人开发者如何通过广告平台赚钱
  13. 【NAACL 2021】RCI:在基于 Transformer 的表格问答中行和列语义捕获
  14. Ipoe和Pppoe,宽带认证技术
  15. Wi-Fi 7全新升级,小米蓄势待发!
  16. 基于osp平台和Echarts的折线图案例
  17. 项目管理软件选型【OA与项目管理】
  18. 我国芯片的未来发展前景如何呢
  19. cmd错误:找不到或无法加载主类 和 错误:找不到符号
  20. 微生物群落相互作用模型系列------全系列汇总(2022.8.12更新)

热门文章

  1. 在RHEL6.6环境下进行LVS-NAT实验(Vmware模式)
  2. C#通用类库--设置开机自运行禁用任务管理器注册表等操作
  3. 设计模式-结构型-装饰
  4. 关于整型数据符号位扩展的问题
  5. deepin--eclipse安装与配置
  6. 吴恩达深度学习课程deeplearning.ai课程作业:Class 4 Week 2 Residual Networks
  7. 2021-11-05 虚拟机centos7更改root与home分区大小
  8. php enable all,php中的enable_dl配置如何有用?
  9. php性能测试下载,PHP性能测试工具xhprof安装与使用方法详解
  10. linux下打开配置文件命令_Linux下用户权限相关命令