文章目录

  • 题目
  • 思路
  • AC代码

题目

思路

是一个字符串模拟题,就按照给定的点和@来进行模拟。

AC代码

#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
bool have_alpha(string check){for(int i=0;check[i];++i){if(check[i]>='a'&&check[i]<='z')return true;}return false;
}
int main() {string s;cin >> s;//cout<<s<<endl;//应该是连续的子串int res = 0;vector<int> point, at;for (int i = 0; s[i]; ++i) {if (s[i] == '@')at.emplace_back(i);if (s[i] == '.')point.emplace_back(i);}//合法的email中的.一定在@后面int move_point = 0, move_at = 0, len1 = at.size(), len2 = point.size(), point_index, at_index;while (move_point < len2 && move_at < len1) {point_index = point[move_point];at_index = at[move_at];//对应的两个在s中的下标if (at_index < point_index) {//.在@的后面string pre;if (move_point == 0) {//说明第一次出现.在@的后面pre = s.substr(0, at_index);//cout << "pre为" << pre << endl;} else {//说明在后面for (int i = point[move_point - 1] + 1; i < at_index; ++i) {pre += s[i];}//cout << "pre为" << pre << endl;}string last;for (int i = point_index + 1; s[i]; ++i) {if (s[i] >= 'a' and s[i] <= 'z')last += s[i];elsebreak;//如果不是字母就跳出来}//cout << "last是" << last << endl;string middle = s.substr(at_index + 1, point_index - at_index - 1);//cout << "middle是" << middle << endl;if (have_alpha(pre) and middle.find('_') == -1 and  last != "")  {int cnt = 0;for (int k = 0; pre[k]; ++k) {if (pre[k] >= 'a' && pre[k] <= 'z')cnt++;}res += cnt * last.size();move_at++;} else {move_at++;}} else {move_point++;}}cout << res;
}

HNU 实验七 字符串 E-mail地址相关推荐

  1. hnu实验七字符串10. 小希练打字

    [问题描述] 小希打字太慢了,因此他在苦练打字技巧.他用了一个教学 App,可以一个个显示自己打出来的英文单词. 当小希输入一个词时,他需要花0.2 秒输入第一个字母.而对于接下来的每个字母,如果在标 ...

  2. hnu实验七字符串7. 音乐DJ和回响贝斯

    [问题描述] 维亚是一家音乐俱乐部里的音乐DJ,在工作中经常使用Dubstep(回响贝斯)音乐.最近,他决定拿出几首老歌进行混音处理. 假定一首歌的歌词是一句英文句子,为了将Dubstep混录到歌曲里 ...

  3. 实验七 字符串 编程题 1. 飞来飞去

    实验七 字符串 编程题 1. 飞来飞去 [问题描述] 松雅作为一位商业人士,经常需要在天津和深圳之间飞来飞去,因为在这两个城市,她有多间旅馆.当然在冬天她更愿意从天津飞到深圳,因为深圳更暖和.她实在是 ...

  4. 实验七:配置交换机管理地址和默认网关(远程登陆)

    实验拓扑: 实验目标: 1.理解交换机默认VLAN的作用: 2.理解交换机默认网关的作用: 3.实现交换机远程管理. 实验步骤: 1.根据拓扑所示,配置对应的IP地址: 2.配置SW1的管理地址,使其 ...

  5. 重做实验七 寻址方式在结构化数据访问中的应用

    先处理第一行所有数据: ;实验七 寻址方式在结构化数据访问中的应用;编程 将data段中的数据 按照如下格式写到table段中,并计算21年中的人均收入(取整) ;结果也按照下面的格式保存在table ...

  6. 实验七 寻址方式在结构化数据访问中的应用

    下面的程序中,已经定义好了这些数据 ;实验七 寻址方式在结构化数据访问中的应用;编程 将data段中的数据 按照如下格式写到table段中,并计算21年中的人均收入(取整) ;结果也按照下面的格式保存 ...

  7. 编译原理实验七:中间代码生成器

    实现一门语言的中间代码生成器(4小时) 实验目的 通过本次实验,加深对中间代码生成的理解,学会编制中间代码生成器. 实验任务 用C.JAVA或其他语言编写一门语言的中间代码生成器,所选实现语言应与之前 ...

  8. 汇编语言实验七-《汇编语言-王爽老师》

    7.实验七 首先查看data段中各个数据的存放位置 076A:0H-076A:53H:存放年份 076A:54H-076A:0A7H:存放收入 076A:0A8H:开始存放雇员数 编写代码如下(htt ...

  9. c语言实验七实验报告,C语言实验七 数 实验报告.doc

    C语言实验七 数 实验报告 C语言程序设计 实 验 报 告 实验题目 实验七 函数 实验目的 掌握函数定义的方法: 掌握函数实参与形参的对应关系,以及值传递的方式. 掌握函数的嵌套调用和递归调用的方法 ...

最新文章

  1. Microsoft Security Essential: 微软安全软件
  2. 第十二周项目一-实现复数类中的运算符重载(2)
  3. java中bufferendwriter_Java IO系列(三)Writer
  4. 广东春运安保工作提前10天启动
  5. Elasticsearch安装(Linux)
  6. TensorFlow的新生!
  7. 计算机网络|UDP用户数据报服务
  8. 如何利用自己的知识设计一块属于自己的单片机开发板
  9. 情侣在公交车上接吻遭乘客指责
  10. 平面弧长极坐标公式的疑问
  11. Windows安全加固简介
  12. 一个非常非常非常简单的SpringBoot小项目by hazy
  13. 路由器 设置DNS 域名拦截 重定向
  14. 请不要在“微服务”的狂热中迷失自我!
  15. PageHelper分页永远返回第一页数据
  16. 为 什 么 说 Synchronized 是 非 公 平 锁
  17. 小白学习老九君C++笔记(10) 使用类创建对象
  18. 论文阅读Measuring Regularity of Individual Travel Patterns
  19. CF1548D2 Gregor and the Odd Cows (Hard)
  20. 商城系统官方网站PHP源码

热门文章

  1. unigui发展路线图
  2. Matplotlib随记2
  3. 9-n个人中选k个人的选择方法种类
  4. [JavaScript]JavaScript处理iframe的动作
  5. 【嵌入式】使用Cross Toolchain构建交叉工具链
  6. mybatis的拦截器及分页机制
  7. 【原创】设计模式面对面之观察者模式
  8. Java是如何实现跨平台运行的
  9. LVDS之一_理解SerDes
  10. cocos2dx android运行Luac编译后的lua代码