[一道笔试题]手动实现字符串split功能

今天线上面试某厂,面试官出了这样一道题,大意就是:

给定一个字符串,和一个分割字符串,将字符串进行分割,存入到一个数组中。例如一个字符串为:aa;;bb;;;cc;;;;dd;;,其中分割字符串为:;;,将字符串分割为:“aa”,“bb”,”;cc“,"",”dd“,”“,并且输出。

面试官让我20分钟跑通算例,一开始我理解错了,以为分割字符串是固定的,后来在面试官的提醒下才发现那只是一个样例,然后,我并没有按期完成题目,于是面试流程秒灰……
后来我进行了一下复盘,感觉自己的思路是没有问题的,只是时间没来得及。我的思路大概是:

首先进行字符串字串搜索,为了节约时间,我直接用的暴力求解,没有采用KMP算法,然后得到匹配到的位置,将前面的字串存储,继续迭代求解后面的字串,直到到达原字符串末尾。

我在本地跑了一下,发现是没问题的,不知道当时考试的时候是因为紧张,还是牛课网站的限制,导致我的代码存在问题,没等调通就被面试官打端,然后GG了。
代码如下,希望可以得到大神的指点(虽然好像并没有人看我的博客,就当是自己的一次复盘吧):

#include<stdio.h>
#include<vector>
#include<iostream>
#include<string>
using namespace std;

//存贮结果
vector<string> result;

//暴力子串匹配
int findPos(string str,string split){
   
    int len1 = str.length
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值