题目大意是:给定一个字符串A,然后给定多个单词,然后根据给定的单词在字符串中插入空格,求插入空格最少的组合。例如给定字符串ilikeeverything,给定单词i、like、every、thing、likeeverything。输出为i likeeverything。
#include <iostream>
#include <vector>
#include <set>
#include <map>
#include <string>
#include<algorithm>
#include<functional>
using namespace std;
string result;
int mincount=1000;
int count1 = 0;
bool flag = false;
//注意递归里面最好不要有全局变量,如果返回,注意保存有上次的值。如果想把本次的值传递到下一次递归,
//完全可以利用参数传值传递,而且返回后,值不变(变化的注意复原)。(我只是在结束条件满足时获得值即可,中间的值我又不需知道)
//local:当前查找的起始位置
//resulttemp:暂存结果,因为会有多个解。
//blanknum:插入的空格数量
//str:要插入空格的字符串
//dict:字典(放入的是多个字符串)
void mincut(int local,string resulttemp,int blanknum,const string& str, const set<string>& dict)
{

本文探讨了如何利用递归解决字符串处理问题,包括在给定字符串中插入空格以匹配单词,以及计算一个字符串能组合出另一个字符串的次数。递归的结束条件和回溯策略是解题关键。
最低0.47元/天 解锁文章
2216

被折叠的 条评论
为什么被折叠?



