赞
踩
如果笔试成绩不理想,面试的时候会问,为什么没有做出来。还好我笔试后重新做了一遍!
题量很大,但是不是很难,这里需要注意四个输出:
(1)合法字符串去重输出(不是字符串中的字符去重,而是字符串去重)
(2)非法字符串直接输出
(3)合法字符串移位再输出
(4)在(3)的基础上排序输出
输入实例:(按Ctrl+Z结束输入)
abc def == acd123 44234tjg aga'-= ad--s abd 123 abcdef 12345678901234567890123456789012345678901234567890123 EDFG SDFG ABC DEF ccc dd asdfas a*b=1 87&&^ == 234abs35 765rgfh4sd 1231
输出实例:
abc def acd123 44234tjg abd 123 abcdef 12345678901234567890123456789012345678901
234567890123 EDFG SDFG ABC DEF ccc dd asdfas 234abs35 765rgfh4sd 1231
== aga'-= ad--s a*b=1 87&&^ ==
bca efd 23acd1 234tjg44 bda 231 efabcd 12345678901234567890123456789012345678901
231234567890 FGED FGSD BCA EFD ccc dd asasdf 4abs3523 765rgfh4sd 3112
12345678901234567890123456789012345678901231234567890 231 234tjg44 23acd1 3112 4
abs3523 765rgfh4sd BCA EFD FGED FGSD asasdf bca bda ccc dd efabcd efd
如有错误的地方请指出,谢谢
#include <iostream> #include <vector> #include <string> #include <list> #include <algorithm> using namespace std; void fun_moveBit(string &str) { string tempStr; int moveBit = 10 % str.length(); tempStr = str.substr(0, moveBit); str = str.erase(0, moveBit); str.append(tempStr); } int main() { string str; vector<string> vecStr_OK; vector<string> vecStr_NO; while (cin >> str) { int flag = 1; string newStr; for (int i = 0; i < str.size(); i++) { //判断是否合法//一旦不合法就将标志位置0 if (!(str[i] >= '0' && str[i] <= '9') && !(str[i] >= 'a' && str[i] <= 'z') && !(str[i] >= 'A' && str[i] <= 'Z')) { flag = 0; break; } } if (flag == 1)//OK { //去重 if (find(vecStr_OK.begin(), vecStr_OK.end(), str) == vecStr_OK.end()) { vecStr_OK.push_back(str); } } else//No vecStr_NO.push_back(str); } //第1个输出 for (int i = 0; i < vecStr_OK.size(); i++) { string tempStr; tempStr = vecStr_OK[i]; cout << tempStr << " "; } cout << endl; //第2个输出 for (int i = 0; i < vecStr_NO.size(); i++) { cout << vecStr_NO[i] << " "; } cout << endl; //第3个输出 for (int i = 0; i < vecStr_OK.size(); i++) { fun_moveBit(vecStr_OK[i]); cout << vecStr_OK[i] << " "; } cout << endl; //第4个输出 sort(vecStr_OK.begin(), vecStr_OK.end()); for (int i = 0; i < vecStr_OK.size(); i++) cout << vecStr_OK[i] << " "; cout << endl; return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。