nowcoder possible sentences

2024-05-07 11:32
文章标签 possible nowcoder sentences

本文主要是介绍nowcoder possible sentences,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目: possible sentences

题目描述:Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each word is a valid dictionary word.
Return all such possible sentences.

输入描述:
s ="catsanddog"
dict ="cat", "cats", "and", "sand", "dog"
输出描述:
[cats and dog, cat sand dog]
网址:https://www.nowcoder.com/questionTerminal/371e1d8f234c43eea90d96bd0f214b03
解题思路:

1)处理输入的数据为程序所需要的数据;例如:s =“catsanddog” 处理为 :catsanddog;第二行dic处理思路和第一行s处理思路一致;
2)找到dic中的字符串在s 中的位置;
3)将字符串的位置和字符串建立映射关系map<int , vector>,因为一个位置可能有多个字符串对应;只匹配dic中字符串在s中第一次匹配的位置。
4)寻找可以将dic中的字符串拼接成为s的所有的集合;
5)输出时候注意输出的格式和位置即可。

#include<iostream>
#include<string>
#include<map>
#include<vector>
using namespace std ;
//4)solveProblem()是为了寻找所有s的拼接组合
void solveProblem(map<int , vector<string>>& dic , vector<string>& answer , vector<string>& pri , int strSize , int ad , bool& sta)
{if (dic.find(ad) == dic.end())return ;for (auto tmp : dic[ad]){if (ad + tmp.length() == strSize){if (sta)pri.push_back(", ") ;string strtmp = "" ;for (int c_i = 0 ; c_i < answer.size() ; c_i ++)strtmp += (answer[c_i] + " ") ;strtmp += tmp ;pri.push_back(strtmp) ;sta = true ;return ;}answer.push_back(tmp) ;solveProblem(dic , answer , pri , strSize , ad + tmp.length() , sta) ;answer.pop_back() ;}}
int main()
{string str , tmp , getStr;int first , second ;getline(cin , str) ;//第一步,将输入处理为需要的数据例如:s ="catsanddog" , 处理为:catsanddogfirst = str.find("\"") ;second = str.find("\"" , first + 1) ;str = str.substr(first + 1 , second - first - 1) ;vector<string> vecStr ;bool sta = false ;map<int , vector<string>> dic ;getline(cin , getStr) ;int ad ;vector<string> answer , pri ;first = 0 ;first = getStr.find("\"" , first) ;//建立dic 中字符串在 s位置之间的映射以及dic行数据处理为数组while (first != -1){second = getStr.find("\"" , first + 1) ;tmp = getStr.substr(first + 1 , second - first - 1) ;ad = str.find(tmp) ;if (dic.find(ad) == dic.end())dic[ad] = vecStr ;dic[ad].push_back(tmp) ;first = getStr.find("\"" , second + 1) ;}//输出字符串的格式;cout << '[' ;//4)solveProblem()是为了寻找所有s的拼接组合solveProblem(dic , answer , pri , str.length() , 0 , sta) ;int c_i = pri.size() - 1 ;while(c_i > -1)cout << pri[c_i --] ;cout << ']' << endl ;return 0 ;
}

这篇关于nowcoder possible sentences的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/967223

相关文章

NowCoder HJ17 坐标移动

前言 华为机试刷题 题目: HJ17 坐标移动 编程语言: C++ 解题状态: 基础不牢,磕磕绊绊的 思路 本题主要是模拟题,分为三个步骤:获取字符串后利用分号获取坐标移动步骤;判断步骤是否合法;移动坐标。 代码 #include <algorithm>#include <iostream>#include <string>#include <vector>using na

NLP-文本匹配-2017:BiMPM【Bilateral Multi-Perspective Matching for Natural Language Sentences】

NLP-文本匹配-2016:BiMPM【Bilateral Multi-Perspective Matching for Natural Language Sentences】

popular short sentences

popular short sentences backward compatibility 向后兼容 archive  文档  posted @ 2017-06-15 16:45 酸奶加绿茶 阅读( ...) 评论( ...) 编辑 收藏

cocos2d: fullPathForFilename: No file found at /cc_2x2_white_image. Possible missing file.

cocos2d: fullPathForFilename: No file found at /cc_2x2_white_image. Possible missing file. 程序运行的时候输出这条信息cocos2d: fullPathForFilename: No file found at /cc_2x2_white_image. Possible missing file.

Is it possible to modify OpenAI environments?

题意:“是否可以修改 OpenAI 环境?” 问题背景: There are some things that I would like to modify in the OpenAI environments. If we use the Cartpole example then we can edit things that are in the class init funct

nowcoder——回文结构

链表的回文结构_牛客题霸_牛客网 (nowcoder.com) 我们来分析该题:我们首先要清楚什么是回文结构?其实就是对称结构。如果一个链表呈对称结构就说明该链表具有回文结构。 下面给上一些例子: 那我们怎么判断该链表是否属于回文结构呢? 思路1:将链表元素放到数组中,然后定义两个指针分别从头部和尾部开始遍历,如果对应位置上的元素相等就说明该链表属于回文结构。这个思路虽然可以解决问题

LeetCode/NowCoder-链表经典算法OJ练习1

目录 说在前面 题目一:移除链表元素 题目二:反转链表 题目三:合并两个有序链表 题目四:链表的中间节点 SUMUP结尾 说在前面  dear朋友们大家好!💖💖💖数据结构的学习离不开刷题,之前给大家推荐过两个网站-牛客网和力扣,一个好的刷题网站是非常重要的,数据结构的思维需要靠刷题培养。我们上个篇目给大家介绍了单链表,也带大家实现了单链表的基本操作,我们今天趁热打

WARNING: POSSIBLE DNS SPOOFING DETECTED! 和 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 的解决方案

当一个节点的ip发生变化,再进行ssh 就会提示以下错误: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

It‘s possible that the file was already in use (by a text editor or antivirus)

方法一 删除用户下的.npmrc文件,即不改变全局安装的路径(不够好,本质问题仍没有解决,全局还是会安装在C盘) 每次都用管理员身份运行命令行(不够方便,vscode 下的命令行默认也不是管理员身份运行的)    方法二 找到node的文件夹,直接修改node_global和node_cache文件夹的权限 右击属性 ,找到自己的用户名,更改权限

MYSQL性能调优02_Explain概述、详解id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra列

文章目录 ①. Explain概述②. 构建SQL坏境语句③. id字段④. select_type、table字段⑤. type字段⑥. possible_keys、key列字段⑦. key_len字段⑧. ref、rows字段⑨. Extra字段 ①. Explain概述 ①. 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MYSQL是如何处理你的SQ