Split String 

 

Give a string, you can choose to split the string after one character or two adjacent characters, and make the string to be composed of only one character or two characters. Output all possible results.

您在真实的面试中是否遇到过这个题?

Yes
样例

Given the string "123"
return [["1","2","3"],["12","3"],["1","23"]]

这道题目刚一开始我想的就是 第一点,可后来发现并不需要。现在感觉能用void就用void,过多的返回值不晕才怪。

1.看到题目给定的函数返回类型是一个嵌套vector,所以很容易的会想到另外设计一个解决函数且返回类型是vector。

2.回溯法的题目必定需要恢复现场,这道题目要考虑的就是怎么恢复现场。

3.考虑嵌套vector什么时候进行插入,考虑插入条件。

4.注意当s.size()==0时怎么操作

下面是没有进行再次优化的代码,有错误或者改进请大佬指出。

class Solution {
public:
/*
* @param : a string to be split
* @return: all possible split string array
*/
vector <string> a;
vector<vector<string> > ans;
void back(int t,int n,string &s)
{
if(!s.size())            
{
ans.push_back(a);
return ;
}
if(t>=s.size())
  return ;
else{
if(n==1){            //压入一个字符
string c="";
c=c+s[t];
a.push_back(c);
if(t+1==s.size()){
ans.push_back(a);
}
t++;
back(t,1,s);
t++;
back(t,2,s);
t-=2;
a.erase(a.end()-1);    //返回现场
}
else{
string c="";
c=c+s[t-1]+s[t];
a.push_back(c);
if(t+1==s.size()){
ans.push_back(a);
}
t++;
back(t,1,s);
t++;
back(t,2,s);
t-=2;
a.erase(a.end()-1);
} }
return ;
}
vector<vector<string> > splitString(string& s) {
// write your code here back(0,1,s);      //给定字符为1时
if(s.size()>1)
back(1,2,s);    //给定字符数大于1,以两个字符开头搜索
return ans;
}
};

  

lincode 680 Split String的更多相关文章

  1. Java中关于String的split(String regex, int limit) 方法

    今天在对一个String对象进行拆分的时候,总是无法到达预计的结果.呈现数据的时候出现异常,后来debug之后才发现,错误出在String spilt上,于是开始好好研究下这东西,开始对api里的sp ...

  2. String的split(String regex, int limit)方法小结

    split(String regex, int limit)方法,头一个参数String regex表示字符串分割的模式,包括分隔符和正则表达式:但是第二个参数limit比较迷糊人,api中这样解释: ...

  3. C#String.Split (string[], StringSplitOptions)中的StringSplitOptions是什么意思,看了msdn还是不懂?

    MSDN上面这样子写的: [ComVisibleAttribute(false)] public string[] Split(string[] separator,StringSplitOption ...

  4. Weekly Contest 78-------->811. Subdomain Visit Count (split string with space and hash map)

    A website domain like "discuss.leetcode.com" consists of various subdomains. At the top le ...

  5. C++ Split string into vector<string> by space

    在C++中,我们有时候需要拆分字符串,比如字符串string str = "dog cat cat dog"想以空格区分拆成四个单词,Java中实在太方便了,直接String[] ...

  6. Java字符串的split(String str)方法空串的问题

    String strs[] = "SS1BB2CC3".split("\\D+"); public static String Test(){ Date d = ...

  7. C++ Split string into vector<string> by space(转)

    c++中没有这么方便的实现,但也有很多的方法能实现这个功能,下面列出五种常用的实现的方法,请根据需要选择,个人觉得前三种使用起来比较方便,参见代码如下: #include <vector> ...

  8. T-SQL 拆分使用指定分隔符的字符串(split string)

    比如有一个表,我们需要些一个语句像SELECT OtherID, SplitData WHERE SomeID = 'abcdef-.......' , 然后就能返回分割成单独的行. 原表: | So ...

  9. Split string every nth character?

    https://stackoverflow.com/questions/9475241/split-string-every-nth-character >>> line = '12 ...

随机推荐

  1. NASM在Ubuntu上的安装与简单使用

    一 .安装NASM 1. 下载安装文件 地址是:http://www.nasm.us/pub/nasm/releasebuilds/2.11.08/ 2.解压(具体命令要根据压缩包的类型来选用) 3. ...

  2. css 动画 和 响应式布局和兼容性

    14.动画 -moz-:火狐, -ms-:IE,-webkit-:谷歌,-o-:欧朋 transform旋转 rotate旋转 scale放大 translate偏移量 skew倾斜度 transfo ...

  3. Python实现抓取CSDN热门文章列表

    1.使用工具: Python3.5 BeautifulSoup 2.抓取网站: csdn热门文章列表 http://blog.csdn.net/hot.html 3.分析网站代码: 4.实现代码: _ ...

  4. 文件夹选择之FolderBrowserDialog控件

    应用程序可能只允许用户选择文佳夹而非文件,例如在播放MP3时,用户可能把所有的MP3放在一个文佳夹内,在添加时,只要选择添加这个文佳夹,将会把在这个文件内的所有MP3添加的播放器里.在这里对播放器来说 ...

  5. hibernate课程 初探一对多映射2-4 Mysql创建数据库表

    1 本节内容: mysql 数据库建表(班级表和学生表) Create table grade(gid varchar(32) primary key, gname varchar(32) not n ...

  6. Movideo SaaS解决方案

    类型: 定制服务 软件包: media solution collateral 联系服务商 产品详情 解决方案 概要 Movideo为媒体客户提供的SaaS解决方案部署在位于全球数据中心的Azure云 ...

  7. Azure 1 月新公布

    Azure 1 月新发布:Microsoft Power BI Embedded 公共预览和计算机视觉 API 标准版的更新以及 Azure IoT 网关 SDK 和中心设备管理新功能正式发布以及关于 ...

  8. 1、HDFS分布式文件系统

    1.HDFS分布式文件系统 分布式存储 分布式计算 2.hadoop hadoop含有四个模块,分别是 common. hdfs和yarn. common 公共模块. HDFS hadoop dist ...

  9. Metasploitable渗透测试实战——生成木马

    攻击机:kali 目标机:windows 1.生成木马  wincap发送至本机 2.进入msf  (命令:msfconsole)启动监听 3.当目标点击test.exe(可伪装)时,触发后门,实现入 ...

  10. April 22 2017 Week 16 Saturday

    Fear is an essential part of our survival, it keeps us alert. 恐惧是生存的重要部分,它让我们保持警惕. Fear and pain are ...