部分IT公司笔试算法题
[10-10 21:21:19] 来源:http://www.77xue.com 笔试题目 阅读:8903次
概要:#include "stdafx.h"int IsEchoNum(int num) {int tmp = 0;for(int n = num; n; n/=10)tmp = tmp *10 + n%10;return tmp==num;}int main(int argc, char* argv[]) {int num = 12321;printf("%d %d\n", num, IsEchoNum(num));}22、删除字符串中的数字并压缩字符串(神州数码以前笔试题),如字符串”abc123de4fg56”处理后变为”abcdefg”。注意空间和效率。(下面的算法只需要一次遍历,不需要开辟新空间,时间复杂度为O(N))#include "stdafx.h"void delNum(char *str) {int i, j=0;// 找到串中第一个数字的位子for(i=j=0; s
部分IT公司笔试算法题,标签:驾照笔试题目,腾讯笔试题目,http://www.77xue.com
#include "stdafx.h"
int IsEchoNum(int num) {
int tmp = 0;
for(int n = num; n; n/=10)
tmp = tmp *10 + n%10;
return tmp==num;
}
int main(int argc, char* argv[]) {
int num = 12321;
printf("%d %d\n", num, IsEchoNum(num));
}
22、删除字符串中的数字并压缩字符串(神州数码以前笔试题),如字符串”abc123de4fg56”处理后变为”abcdefg”。注意空间和效率。(下面的算法只需要一次遍历,不需要开辟新空间,时间复杂度为O(N))
#include "stdafx.h"
void delNum(char *str) {
int i, j=0;
// 找到串中第一个数字的位子
for(i=j=0; str && (str<'0' || str>'9'); j=++i);
// 从串中第一个数字的位置开始,逐个放入后面的非数字字符
for(; str; i++)
if(str<'0' || str>'9')
str[j++] = str;
str[j] = '\0';
}
int main(int argc, char* argv[]) {
char str[] = "abc123ef4g4h5";
printf("%s\n", str);
delNum(str);
printf("%s\n", str);
}
23、求两个串中的第一个最长子串(神州数码以前试题)。如"abractyeyt","dgdsaeactyey"的最大子串为"actyet"。
#include "stdafx.h"
char *MaxSubString(char *str1, char *str2) {
int i, j, k, index, max=0;
for(i=0; str1; i++)
for(j=0; str2[j]; j++) {
for(k=0; str1[i+k]==str2[j+k] && (str2[i+k] || str1[i+k]); k++);
if(k>max) { // 出现大于当前子串长度的子串,则替换子串位置和程度
index = j; max = k;
}
}
char *strResult = (char *)calloc(sizeof(char), max+1);
for(i=0; i
strResult = str2[index++];
return strResult;
}
int main(int argc, char* argv[]) {
char str1[] = "abractyeyt", str2[] = "dgdsaeactyey";
char *strResult = MaxSubString(str1, str2);
printf("str1=%s\nstr2=%s\nMaxSubString=%s\n", str1, str2, strResult);
}
24、不开辟用于交换数据的临时空间,如何完成字符串的逆序(在技术一轮面试中,有些面试官会这样问)
#include "stdafx.h"
void change(char *str) {
for(int i=0,j=strlen(str)-1; i
str ^= str[j] ^= str ^= str[j];
}
}
int main(int argc, char* argv[]) {
char str[] = "abcdefg";
printf("strSource=%s\n", str);
change(str);
printf("strResult=%s\n", str);
return getchar();
}
25、删除串中指定的字符(做此题时,千万不要开辟新空间,否则面试官可能认为你不适合做嵌入式开发)
#include "stdafx.h"
void delChar(char *str, char c) {
int i, j=0;
for(i=0; str; i++)
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页
Tag:笔试题目,驾照笔试题目,腾讯笔试题目,求职指南 - 求职笔试面试 - 笔试题目
- 上一篇:IT公司笔试常考的算法题
《部分IT公司笔试算法题》相关文章
- 部分IT公司笔试算法题
- › 部分IT公司笔试算法题
- › 部分IT公司常考的算法题目
- 在百度中搜索相关文章:部分IT公司笔试算法题
- 在谷歌中搜索相关文章:部分IT公司笔试算法题
- 在soso中搜索相关文章:部分IT公司笔试算法题
- 在搜狗中搜索相关文章:部分IT公司笔试算法题