`
蒙面考拉
  • 浏览: 162941 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表
两种方法: 循环两次寻找最长的子串: <方法一>   #include <iostream> #include <stdio.h> #include<string> using namespace std; int main(){     string str,tep; cin>>str; for(int i=str.length()-1;i>1;i--){ for(int j=0;j<str.length();j++){ if(j+i<=str.length()){ size_t t= ...
算法描述首先获得后缀数组,然后1.第一行第一个字符a,与第二行第一个字符b比较,不等,则2.第一行前两个字符ab,与第三行前两个字符cb比较,不等,则3.第一行前三个字符abc,与第四行前三个字符bcb比较,不等,则4.第一行前四个......上述过程就相当于在原始字符串中,第一趟,a与b比较,ab与cb比较,abc与bcb比较,abcb与cbca比较,abcbc与bcabc比较,abcbcb与cabc比较......第二趟,b与c比较,bc与bc比较(相等,则继续向后取长度为2的子串比较,碰到不等为止,本例中因碰到ab停止),bcb与cbc比较......第三趟,c与b比较,cb与cb比较(相 ...
假设字符串:abcdefg 左循环两位:cdefgab 右循环两位:fgabcde 规律: AB->BA==((A的反转)(B的反转))的反转=(B的反转)的反转(A的反转)的反转=BA   1 // 将一个字符串中某个子串反序 2 void reverseOrder(char * str, int p, int q) 3 { 4      char temp; 5      while (p < q) 6     { 7 temp = str[p]; 8          st ...
很多年前我进入硅谷人才市场,当时是想找一份高级工程师的职位。如果你有一段时间没有面试过,根据经验,有个非常有用的提醒你应该接受,就是:你往往会在前几次面试中的什么地方犯一些错误。简单而言就是,不要首 ...
题目描述:n只猴子要选大王,选举方法如下:所有猴子按 1,2 ……… n 编号并按照顺序围成一圈,从第 k 个猴子起,由1开始报数,报到m时,该猴子就跳出圈外,下一只猴子再次由1开始报数,如此循环,直到圈内剩下一只猴子时,这只猴子就是大王。 输入数据:猴子总数n,起始报数的猴子编号k,出局数字m 输出数据:猴子的出队序列和猴子大王的编号 代码修改了一天才完成,第一次是用多个函数写的,但是发觉C语言没有引用参数这个特性,使得形参指针不能被直接修改,必须靠返回值来修改才行,这样太麻烦了...于是第二次写的时候就没有使用函数,直接在main()里完成了循环链表的操作,感觉应该没什么问题,哪位 ...
1、编程实现一个单链表的建立/测长/打印。        答案:
  [cpp] view plaincopy
  #include <iostream.h> #include <memory.h> class CA {     int k; public:     void f() {cout << "CA::f" << endl;} };
char *strcpy(char *strDest, const char *strSrc); {     assert((strDest!=NULL) && (strSrc !=NULL)); // 2分     char *address = strDest;                   // 2分     while( (*strDest++ = * strSrc++) != ‘\0’ )    // 2分        NULL ;
operator new 和 operator delete函数有两个重载版本,每个版本支持相关的new表达式和delete表达式: 在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete ...
仅通过基类的接口,程序调用了正确的函数,编译器是如何知道正确代码的位置的呢?       其实,编译器在编译时并不知道要调用的函数体的正确位置,但它插入了一段能找到正确的函数体的代码。这称之为 晚捆绑(late binding)  或 运行时捆绑(runtime binding)  技术。    通过virtual 关键字创建虚函数能引发晚捆绑,编译器在幕后完成了实现晚捆绑的必要机制。它对每个包含虚函数的类创建一个表(称为VTABLE),用于放置虚函数的地址。在每个包含虚函数的类中,编译器秘密地放置了一个称之为vpointer(缩写为VPTR)的指针,指向这个对象的VTABLE。   关于 ...
分配空间(Allocation)        创建C++类对象的第一步就是为其分配内存空间。对于全局对象,静态对象以及分配在栈区域内的对象,对它们的内存分配是在编译阶段就完成了,而对于分配在堆区域内的对象,它们的分配是在运行 ...
静态类成员包括静态数据成员和静态函数成员两部分。   与全局变量相比,优势:1. 静态数据成员仍然是在类域名字空间,没用进入程序的全局名字空间,因此不存在与程序中其他全局名字冲突的可能2. 可以实现信息隐藏,静态数据成员可以是private成员,全局变量不行静态数据成员:     静态数据成员必须在类定义外初始化,但const静态数据成员除外,const静态数据成员可以在类体中初始化 class c1 { public:  private:   static int num;   static const  string name = "chio"; };   int ...
对于普通对象而言复制是很简单的,一般是将变量或者常量赋值给某一个变量:int a=88;int a=b;而对于类对象而言,由于其内部结构复杂,复制过程便有一些道道: #include <iostream>using namespace std;class CExample {private:     int a;public:     CExample(int b)     { a=b;}     void Show ()     {        cout<<a<<endl;    }};
学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)转载请保留作者信息; 1、cin 1、cin.get() 2、cin.getline() 3、getline() 4、gets() 5、getchar() 1、cin>>           用法1:最基本,也是最常用的用法,输入一个数字: #include <iostream> using namespace std; main () { int a,b; ...
Global site tag (gtag.js) - Google Analytics