两道面试题

原创 2006年06月15日 12:13:00

第一道,比较经典,用代码实现strstr()的功能.

#include <iostream>
using namespace std;
char* findasub(char str1[],int len1,char str2[], int len2)
{
 if (len2>len1)return NULL;
 
 int j=0;
    int i=0;
 
 for (;j<len2;j++)
  for (;i<len1;i++)
  {
   if (str2[j]==str1[i])j++; //当有一个字符匹配时,子串后移一位.
   else j=0;     //任何一次两字符不等时,都要从头匹配.
  
   if (j==len2)              //匹配成功.这里之所以用len2而不用len2-1是因为
   {        //j==len2-1 j还会自增一次.
    int len=len1-i+len2;
    char*str=new char[len];
    for (int k=0;k<len;k++)str[k]=str1[k+i-len2+1];
    return str;
    break;
   }
  
  }
 
  if(j!=len2-1) return NULL;//匹配失败.
 
  return NULL;
}

int main(void)
{
 char str1[]="femalelover is a good man";
 char str2[]="lover";
 char* fn=findasub(str1,strlen(str1),str2,strlen(str2));
 if(fn)
 {
  cout<<fn<<endl;
  delete fn;
 }
 return 0;
}


第二道:用STL接受输入的整数,当输入不是整数时,输出排序后的所有整数:
#include <list>
#include <iostream>
#include <algorithm>
using namespace std;
void main()
{
 list<int>mylist;
 list<int>::iterator myit;
 double test=0;                    //这里必须用double,虽然我们要的是int
 int wathch=0;
 bool isint=true;

 while (isint)
 {
  cin>>test;
  if (test==int(test))      //这里判断一个数是否整数. 如果上面用int,则这里会死循环.
  {
   mylist.push_back(test);
   wathch++;
  }
  else isint=false;
 }
 if (mylist.size()==0)
 {
  cout<<"The list is empty/n";
  return;
 }
 else
 {
  mylist.sort();
 
  for (myit=mylist.begin();myit!=mylist.end();myit++)
   cout<<*myit<<endl;
 }

}

相关文章推荐

两道面试题所引发的C指针的思考

C语言是一门使用比较广泛的高级编程语言,而指针则是C语言的精髓所在,可以说学习C语言不会灵活使用指针就谈不上精通C语言。但是由于C语言指针的灵活性导致了我们在使用过程中出现莫名其妙的各种问题,甚至是段...

两道面试题:2012年10月9号阿里巴巴笔试

1. n个无序整数,已知第i个数在排好序的序列中的位置为j,满足|i-j| 的得两分,总分是20分。 借鉴的答案: 答:由以上条件判断最小的数字一定在前k个中,于是可以讲前k个数建...

两道面试题(英文版)

今天下午小陈给我发了两道面试题,我花了点时间研究了一下。 现在在这里总结: 题目一: Problem Statement # 1Given a set of N (> 1) positive i...

各位周末玩了一天累了吧,我们一起来做两道面试题吧(据说淘宝的哟)!

前言 我的CSS一直是一块短板,原因就是前几年对CSS不重视,现在重视了项目经验又不足,所以在这块上我是下了很大功夫的,也看了一点书,做了点东西,希望在几个项目后CSS水平有所提高! 完了,我最近...

两道面试题解答之一 Trading Server Deadlocks

https://bridgewater.interviewstreet.com/challenges/ 第一题是关于判断死锁问题的 Trading Server Deadlocks ...

设计的两道面试题C++

C++面试题设计

两道Linux面试题

  • 2012年04月11日 22:46
  • 2KB
  • 下载

华为的两道算法笔试题及答案

  • 2011年09月01日 14:25
  • 1KB
  • 下载

递归相关的的两道面试题

腾讯面试题:50个阶梯,你一次可以上一阶或两阶,走上去,共有多少种走法? 分析题目: 到第一层只有一种情况上一阶即可即为1 到第二层有两种情况11和2 到第三层有111、12、21三种...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:两道面试题
举报原因:
原因补充:

(最多只允许输入30个字)