Compound Words UVA - 10391(c++用法中substr函数用法+map实现)

题意:

给出字典中一堆单词,单词的输入方式是以字典序输入的。问:在这一堆单词中,有那些单词是通过其它两个单词组合而来的。按字典序升序输出这些单词。

题目:

You are to find all the two-word compound words in a dictionary. A two-word compound word is a
word in the dictionary that is the concatenation of exactly two other words in the dictionary.

Input

Standard input consists of a number of lowercase words, one per line, in alphabetical order. There will
be no more than 120,000 words.

Output

Your output should contain all the compound words, one per line, in alphabetical order.

Sample Input

a
alien
born
less
lien
never
nevertheless
new
newborn
the
zebra

Sample Output

alien
newborn

分析:

如果用两个字符串拼接看拼接好的字符串是否在字典中,一定会超时。
我们可以逆向,由于字符串的长度不是很长,所以把一个字符串拆为两个字符串看这两个字符串是否都在字典中即可
在这里我用的map实现+substr函数

c++用法中substr函数用法

#include<string>
#include<iostream>
using namespace std;
int main()
{
string s("12345asdf");
string a = s.substr(0,5);     //获得字符串s中从第0位开始的长度为5的字符串
string b=s.substr(5);/**==string b=s.substr(5,9)*////先有pos,若无n,直接认为是字符串长度
cout << a << endl;
cout << b << endl;
}
  1. 用途:一种构造string的方法
  2. 形式:s.substr(pos, n)
  3. 解释:返回一个string,包含s中从pos开始的n个字符的拷贝(pos的默认值是0,n的默认值是s.size() - pos,即不加参数会默认拷贝整个s)
  4. 先有pos,若无n,直接认为是字符串长度

ac代码

#include<iostream>
#include<string.h>
#include<map>
#include<string>
#include<algorithm>
using namespace std;
const int M=1e6+10;
map<string,int>mp;//使用map对于字典中的单词进行映射,作用就是用于查询单词是否字典中
string s[M];
int k;
int main()
{k=0;while(cin>>s[k]){mp[s[k]]=1;k++;}for(int i=0; i<k; i++)for(int j=0; j<s[i].length(); j++){string u,v;u=s[i].substr(0,j);//然后从第一个开始,将每个单词分成它所能变成的任意两个单词v=s[i].substr(j);///substr是C++语言函数,主要功能是复制子字符串,要求从指定位置开始,并具有指定的长度。if(mp[u]&&mp[v])//如果分成的两个单词的映射值均为1,那么这个就输出这个单词{cout<<s[i]<<endl;break;}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/309883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[C++11]返回值类型后置

在泛型编程中&#xff0c;可能需要通过参数的运算来得到返回值类型。 语法: auto func(参数1,参数2,...)->decltype(参数表达式)代码如下: #include <iostream> using namespace std;//template<typename R,typename T,typename U> //R add01(T t, U u) //{ …

在鹅厂面试5轮后扑街!微服务架构,我拿什么拯救你!

上周五接到朋友的电话&#xff0c;此前他一路披荆斩棘&#xff0c;离鹅厂Offer大概仅一步之遥。电话一接通我就说了一通让他请客吃饭的话&#xff0c;对面沉默了几秒钟&#xff0c;淡淡地说了句 “我终面没过....” 这让我一时语塞不知如何安慰他。两个中年油腻男硬是打了2小时…

linux加大ram 内核需要,Linux 5.1内核发布:io_uring接口+支持持久性内存用作RAM

拼 命 加 载 中 ...Linus Torvalds今天发布了Linux Kernel 5.1内核&#xff0c;这是一个功能强大的内核分支&#xff0c;它带来了许多重要的新功能&#xff0c;包括但不限于&#xff1a;改进了对IntelFastboot的支持&#xff1b;对Intel 22260 Wi-Fi的支持&#xff1b;对Raspbe…

Minimum Inversion Number HDU - 1394(求一个数字环的逆序对+多种解法)

题意&#xff1a; 给出n个数&#xff08;0~n-1&#xff0c;每个数仅出现一次&#xff09;,问它长为n的循环序列中逆序对最少的数量。 多种解法&#xff1a;暴力树状数组分治规律推导公式 题目&#xff1a; The inversion number of a given number sequence a1, a2, …, an…

C++实现拓扑排序(vector模拟邻接表存储,栈实现)

代码如下: #include<iostream> #include <vector> #include <string> #include <stack> using namespace std; const int N 10010;int in[N]; vector<int>v[N]; vector<int>printElem;int main() {int n, m;while (cin >> n >&…

如何借助Kubernetes实现持续的业务敏捷性

导语在当今以数字为动力&#xff0c;以客户为中心的世界中&#xff0c;敏捷性已成为组织提高其创建软件的速度、提高响应能力以满足不断变化的客户需求、保持敏捷性以适应变化的关键要素。敏捷不是商品&#xff0c;无法购买或轻易获得。要为组织创造可持续的敏捷性&#xff0c;…

Find them, Catch them POJ - 1703(种类并查集)

题意&#xff1a; 在这个城市里有两个黑帮团伙&#xff0c;现在给出N个人&#xff0c;问任意两个人他们是否在同一个团伙 1.输入D x y代表x于y不在一个团伙里 2.输入A x y要输出x与y是否在同一团伙或者不确定他们在同一个团伙里 题目&#xff1a; The police office in Tadu…

C++实现拓扑排序(邻接表存储,栈实现)

代码如下: #include <iostream> #include <stack> using namespace std; const int N 10010; using vnodeType int; typedef struct Node {int adj;int w;Node *next; }Node;typedef struct Vnode {int indegree;vnodeType v;Node *firstEdge; }Vnode;class Gra…

报复性降薪潮来袭

点击蓝字关注&#xff0c;回复“职场进阶”获取职场进阶精品资料一份最近不少读者问我&#xff1a;“洋哥&#xff0c;公司要全员降薪了&#xff0c;我该留下还是走呢”。今年的职场环境的确很残酷&#xff0c;不少公司直接破产&#xff0c;还有很多公司开始降薪裁员来保证现金…

linux 的网络操作与配置文件,Linux常用文件与网络操作命令速记指南

ls复制代码代码如下:$ ls #查看当前目录下文件conf lnmp_install.sh README vhost_ngx_pagespeed.shinit.sh ngx_pagespeed.sh source vhost.sh复制代码代码如下:$ ls conf #查看conf目录下文件index.html nginx.conf pureftpd-mysql.conf tz.phpinit.d.nginx pure-ftpd.conf s…

[C++11]通过using定义基础类型和函数指针别名

1.定义别名 语法: typedef 旧的类型名 新的类型名; typedef unsigned int uint_t;using 新的类型 旧的类型; using uint_t int ;通过using和typedef的语法格式可以看到二者的使用没有太大的区别&#xff0c;假如我们定义一个函数指针&#xff0c;using的优势就凸显出来了&…

基于 abp vNext 和 .NET Core 开发博客项目

介绍此个人博客项目底层基于 ABP Framework (不完全依赖)搭建项目 和免费开源跨平台的 .NET Core 3.1 开发&#xff0c;可作为 .NET Core 入门项目进行学习&#xff0c;支持各种主流数据库(SqlServer、MySQL、PostgreSql、Sqlite)接入&#xff0c;接口遵循 RESTful API 接口规范…

添加库路经 linux,linux下的静态库与动态库

文件名形如 libxxx.so&#xff0c;其中so是 Shared Object 的缩写&#xff0c;即可以共享的目标文件。生成动态库常用 gcc 命令&#xff1b;举例&#xff1a;编写头文件&#xff1a;ok.h 文件#ifndef __OK_H__#define __OK_H__voidok();#endif编写 ok.c 文件#include "ok.…

操作系统习题三

题目&#xff1a; 1.有8个程序段&#xff0c;他们之间的前驱关系如下&#xff0c;试用信号量实现这些程序段之间的同步 2.简述进程同步机制的基本原则。 答&#xff1a;在多道程序环境下&#xff0c;当程序并发执行时&#xff0c;由于资源共享和进程合作&#xff0c;使同处于…

[C++11]函数模板的默认模板参数

在C11中添加了对函数模板默认参数的支持。 代码如下: #include<iostream> using namespace std;template<typename T long ,typename U int > void myTest(T t A,U u B) {cout << "t " << t << " u " << u <…

揭秘!微软 Build 2020 开发者大会将启,邀您共赴线上新旅程

微软热爱的开发者&#xff0c;开发者热爱的新技术微软Build 2020开发者大会大幕将启行业技术大拿云集&#xff0c;全新技术重磅发布一场专属技术爱好者间的技术交流盛宴北京时间5月19日-20日&#xff0c;邀您会面&#xff01;大会年年有&#xff0c;今年何不同&#xff1f;本届…

JAVA基础知识+基础代码

Java基础知识 异常处理 try {} catch(Exception e) {} void work() throws Exception {} //抛出异常 throw new Exception("输入的字符不能为空&#xff01;"); class MyException1 extends Exception //自定义异常类 {String msg null;public MyException1(S…

linux查找应用主机,Linux 主机和服务器基本性能检查命令和工具

无论我们选择Linux 主机、服务器用来搭建网站&#xff0c;还是用来软件测试项目&#xff0c;在购买之前肯定要查看适合的性价比、配置&#xff0c;以及商家的口碑等一系列的问题。不过&#xff0c;最为重要的可能是在选择之后要进行服务器的各种性能测试&#xff0c;是否适合项…

[C++11]对模板右尖括号的优化

在泛型编程中&#xff0c;模板实例化有一个非常繁琐的地方&#xff0c;那就是连续的两个右尖括号(>>)会被编译器解析成右移操作符&#xff0c;而不是模板参数表的结束。 C11改进了编译器的解析规则&#xff0c;尽可能地将多个右尖号(>)解析成模板参数结束符&#xff…

一文带解读C# 动态拦截覆盖第三方进程中的函数(外挂必备)

一、前言由于项目需要&#xff0c;最近研究了一下跨进程通讯改写第三方程序中的方法&#xff08;运行中&#xff09;&#xff0c;把自己程序中的目标方法直接覆盖第三方程序中的方法函数&#xff1b;一直没有头绪&#xff0c;通过搜索引擎找了一大堆解决方案&#xff0c;资料甚…