摘要:1/*输入一个字符串,输出这个字符串中单词的字典排序*/bool cmp(char* a,char* b){ return strcmp(a,b) myVec; int start=0; //char* temp=new char[strlen(str)+1]; int j=0; for(int i=0;i my; while(p) { my.push_back(p); p=strtok(NULL,d); } sort(my.begin(),my.end(),cmp); f...
阅读全文
摘要:开学了,找工作也正式拉开了序幕,每天光自己看书,也很没劲,和大家一起分享分享,交流一下笔试面试过程中的各种算法题目,如有问题,欢迎指正,希望大家一起进步。。。下面是对数据结构二叉树的一些基本操作,可能在面试中都会涉及到。我们都知道二叉树的定义本身就是一种递归定义,所以对树的大部分操作都可以通过递归的方式进行,但递归不是万能的,因为递归的本身是一件很浪费内存资源的操作,所以在选择算法的时候要权衡各种因素,选取最合理的算法。下图Fig 1 是下面代码中举例会用到的图:Fig 1在本文中,所讨论的二叉树采取以下的定义方式:templatestruct BiNode{ Type data; ...
阅读全文
摘要:计算表达式(A*B+(C+D))-(E*F*H) 这种表达式如果是人来做,非常容易,但对于程序来说,有些困难,但如果转换成后序表达式AB*CD++EFH**-,那么程序就舒服多了 转换的过程并不难,我们使用一个栈,将要转换的表达式中的字符逐个检查,如果字符不是运算符,即是字母,那么我们就讲这个字符放入到新的表达式中,如果是运算符,那么我们只要遵循以下原则即可 1.如果要放入的运算符的运算级别低于栈顶的运算符,那么就将栈顶的运算符弹出,放入到新的表达式,重复这个动作直到栈顶的运算符运算优先级低于或等同于我们要放入栈中的运算符的优先级 2.如果是左括号,不做操作,如果是又括号,那么...
阅读全文
摘要:C++的string提供了replace方法来实现字符串的替换,但是对于将字符串中某个字符串全部替换这个功能,string并没有实现,我们今天来做的就是这件事。首先明白一个概念,即string替换所有字符串,将"12212"这个字符串的所有"12"都替换成"21",结果是什么?可以是22211,也可以是21221,有时候应用的场景不同,就会希望得到不同的结果,所以这两种答案都做了实现,代码如下:#include#include#include#include#include#includeusing namespace std;#de
阅读全文