51信用卡笔试题型 及编程见解
四部分:1.单选。涉及java、c++、操作系统、数据结构、网络、linux 2.多选。同上 3.两道编程题 1>输入一串字符,判断第二个字符串的字符是否都存在于第一个字符串,返回true,否则false,两个串中间有;号连接 如输入: ABCNB51;51NB 输出:true 2>RGB三种颜色,按照RGB的顺序输出。如输入:RBGB,输出:RGBB 4.问答。 用户上传身份证照片后,如不能及时审核需要等待很长时间,易遭客户投诉。 请你用代码模拟用户上传身份证照片的场景,并说明如何处理更高效。
第二道编程题网上有 第一道编程题:
我的思路,p1,p2分别指向前后字符串的首字符,对第二个串每个字符,遍历第一个串进行比较,每轮标志位find默认false,
若有相同字符,则find置为true;否则find不变,则最终查找结果为false。
但当时输出的是find值即0和1,测试没过 #include<iostream> #include<string> using namespace std; int hh(char *p, int i,int length) { char *p1 = p;
char *p2 = p+i+1;
int k = 0;
while (k < length - i-1)
{
bool find = false;
while (*p1 != ';'){
if (*p1++ == *p2) { find = true; p1 = p; break;}}
if (find == false)
{ cout<<"false"; return 0; }
p2++;
k++;
}
cout << "true";
return 0; } int main() { string str;
cin >> str;
int leng = str.length();
char * p = &str[0];
int i = 0; i=str.find(';');
hh(p,i,leng);
return 0; }
如果有问题,恳请批评指正
这编辑器真难用!格式死活调不对