华为2019年实习笔试第一题 大小端
题目大意:
定义一种字符编码,编码格式为:
9个字符为一个编码组;
第一个字符表示之后8个字符的字节序,‘0’表示小端,‘1’表示大端;
编码之后按照大端排序;
例如编码组:‘012345678’,解析之后为’87654321’,‘112345678’,解析之后为’12345678’;
输入:
第一行输入字符串中编码组个数N;
第二行为字符串;
输出:
输出只有一行,包含N个编码组的解析结果,按照大端排序,每一个编码组结果以一个空格分开,行末没有空格。
样例:
输入:
2
0abcdefgh1abcdefgh
输出:
hgfedcba abcdefgh
AC代码如下:
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
cin >> n;
string s;
cin >> s;
int is = 0;
while (s[is] != '\0')
{
if (s[is] == '0')
{
string s_temp = s.substr(is + 1, 8);
string s_temp_inverse(s_temp.rbegin(), s_temp.rend());
cout<< s_temp_inverse<<" ";
is += 9;
}
if (s[is] == '1')
{
string s_temp = s.substr(is + 1, 8);
cout << s_temp << " ";
is += 9;
}
}
system("pause");
return 0;
}