版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42449444/article/details/94028590
月神拿到一个新的数据集,其中每个样本都是一个字符串(长度小于100),样本的的后六位是纯数字,月神需要将所有样本的后六位数字提出来,转换成数字,并排序输出。
月神要实现这样一个很简单的功能确没有时间,作为好朋友的你,一定能解决月神的烦恼,对吧。
每个测试用例的第一行是一个正整数M(1<=M<=100),表示数据集的样本数目
接下来输入M行,每行是数据集的一个样本,每个样本均是字符串,且后六位是数字字符。
对每个数据集,输出所有样本的后六位构成的数字排序后的结果(每行输出一个样本的结果)
4
abc123455
boyxx213456
cba312456
cdwxa654321
123455
213456
312456
654321
快手19年校招笔试题,恕我直言快手校招的题挺水哒,和字节跳动(抖音母公司)的暑期实习招聘题比起来low爆啦(晚妹说字节跳动是神仙打架 哈哈哈)。好了,不多哔哔啦,说下我的思路吧。首先从后往前无脑遍历输入的字符串,截取每个字符串的后6位数字子串后推入vector中进行升序排列,然后输出结果即可。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int M; //数据集的样本数为M
cin >> M;
getchar(); //cin完getline前一定要用getchar吃回车
vector<string> v; //用来存放数字串
while(M--)
{
string temp, str = ""; //temp用于读取字符串,str表示temp中的数字字串
getline(cin,temp);
for(int i = temp.length()-1, cnt = 0; i > 0 && cnt < 6; i--, cnt++) //获取字符串的后6位数字作为数字字串
{
str = temp[i] + str;
}
v.push_back(str);
}
sort(v.begin(),v.end()); //升序排列
for(auto it : v)
{
cout << it << endl;
}
return 0;
}