2019年4月3日华为实习生笔试第2题-合法去重移位排序输出

如果笔试成绩不理想,面试的时候会问,为什么没有做出来。还好我笔试后重新做了一遍!
题量很大,但是不是很难,这里需要注意四个输出:
(1)合法字符串去重输出(不是字符串中的字符去重,而是字符串去重)
(2)非法字符串直接输出
(3)合法字符串移位再输出
(4)在(3)的基础上排序输出
2019年4月3日华为实习生笔试第2题-合法去重移位排序输出
输入实例:(按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;
}