海康笔试题--字符串分割
来源:互联网 发布:五金进销存软件 编辑:程序博客网 时间:2024/06/06 12:45
一、题目要求是对输入的字符串以及分隔符按照分隔符来分割,当时是在替别人做题,由于误导以及时间的紧迫并没有完全读懂题。
题目给的样例是:
输入:abc,sjd,sdjhsj,sjfas,sjhd, ,
输出:abc
sjd
sdjhsj
sjfas
sjhd
输出格式是一个小字符串占用一行。
当时并没有完全读懂题,题目中说分割符中没有空格,但是在最后一个逗号前却有一个空格,我一时没有读懂是什么意思。后来再读题才发现原来最后一个逗号是分隔符,分隔符,分隔符啊,我真是笨。
现在既然读懂题目了,就可以做了
输入是字符串 分割符,(字符串,空格,分隔符)
那我们首先要找到分割符号,然后再根据这个分割符号去分割我们的字符串。
python实现如下所示:
import rea = "abc,,sjs,,djfdj,, ,,"symbol = a.split(" ")[1]symbol = "[" + symbol + "]"# result = a.split(',')result = re.split(symbol, a)b = [x.rstrip() for x in result if x]for num in b: print(num)
C++实现如下(参考https://www.nowcoder.com/discuss/41562):
string temp,s,x; cin>>s>>x; vector<string> v; int pos = s.find(x, 0); int old = pos; v.push_back(s.substr(0, old)); while (pos != string::npos) { old = pos; pos = s.find(x, pos + x.size()); v.push_back(s.substr(old + x.size(), pos - old - x.size())); cout<<pos<<" "<<s<<endl; } for (auto c : v) cout << c << endl; return 0;
这个的实现也比较好理解,首先使用cin输入字符串和分割符,
s中存储字符串,x中存储分隔符
利用find函数在某位值开始向后找到分割符所在的位置
将从起始位置到分割符位置之间的字符串放入v容器中
如果找到的分割符的位置不为-1(为-1表示没找到),则继续更新分割符起始位置
输出容器中的所有小字符串。
这段程序中涉及到的几个函数:cin,find,substr
因为cin 遇到空格、回车、Tab会自动停止接收,如果是需要接收多个字符串,那就继续接收空格之后的字符串给下一个变量。所以s中存储的是字符串,x中存储的是分隔符
find(分隔符, 起始位置),find是寻找字符串中从起始位置开始的第一个分隔符的位置,起始位置默认为0。
substr(起始位置,长度),substr是将字符串从起始位置开始—起始位置+长度这个位置的字符串复制一遍。
ok,就这样。
- 海康笔试题--字符串分割
- 网易笔试:字符串回文分割
- 【CVTE笔试题】数字分割
- 回文字符串 笔试题
- 字符串截取-笔试题
- 字符串笔试题集合
- 字符串笔试题一
- 字符串常见笔试题
- 字符串笔试题
- 笔试题--字符串处理
- 字符串笔试题
- 字符串笔试题
- 字符串笔试题
- 分割字符串
- 分割字符串
- 分割字符串
- 分割字符串
- 分割字符串
- js原型链
- Leetcode 算法习题 第六周
- Appium Appium 文档翻译计划 2017 完成!
- 实现一个函数判断year是不是闰年。
- FastDFS学习
- 海康笔试题--字符串分割
- [Codeforces 295B]Greg and Graph(Floyd)
- 机器学习算法比较
- 实验2循环链表
- 机器学习第十周(一)--随机梯度下降
- 笔试_oracle(3)
- 数据结构实验之栈与队列七:出栈序列判定
- Centos7下完美安装并配置mysql5.6
- Python 用栈模拟递归,遍历文件夹