一、字符串 1、字符串的旋转:前m个字符移动到尾部 蛮力移位:将所有字符前移,将第一个字符放到尾部,调用m次此方法 三步反转:前m-1个反转,n-m个反转,整体反转;反转采用双指针,一个加一个减,通过中间字符交换 2、字符串的包含:判断短字符串的字符都在长字符串中 蛮力轮训:两个循环,ij对应字符不
原创 2022-05-27 17:46:24
70阅读
3.1. 字符串移位包含问题方法1:分别对字符串进行循环移1位,2位,3位…,来判断给定的字符串是否是其中一个字串.复杂度是O(n^3)方法2:这也是一种利用空间换时间的方法.代码如下, 为了简便实现,采用了C库中的字符串操作函数:#if 0/* * 3.1 */bool isRotate(char...
转载 2023-05-31 16:57:56
33阅读
代码清单3-15// 层次遍历二叉树// root,二叉树的根节点void PrintNodeByLevel(Node* root){ for(int level=0; ; level++) { if(!PrintNodeAtLevel(root, level)) break; cout <&...
原创 2021-08-18 02:23:39
25阅读
代码清单3-16// 按层次遍历二叉树// @param// root,二叉树的根节点void PrintNodeByLevel(Node* root){ if(root == NULL) return; vector<Node*> vec; // 这里我们使用STL 中的vector来代替数组,可利用 ...
原创 2021-08-18 02:23:43
62阅读
代码清单3-13// 输出以root为根节点中的第level层中的所有节点(从左到右), 成功返回1,// 失败则返回0// @param// root 为二叉树的根节点 // level为层次数,其中根节点为第0层int PrintNodeAtLevel(Node* root, int level){ if(!root || level < 0) ...
原创 2021-08-18 02:23:45
36阅读
代码清单3-12// ReBuild.cpp : 根据前序及中序结果,重建树的根节点//// 定义树的长度。为了后序调用实现的简单,我们直接用宏定义了树节点的总数#define TREELEN 6// 树节点struct NODE{ NODE* pLeft; // 左节点 NODE* pRight; // 右节点 cha...
原创 2021-08-18 02:23:47
49阅读
代码清单3-10class Queue{public: Type MaxValue(Type x, Type y) { if(x > y) return x; else return y; } Type Queue::Max() {...
原创 2021-08-18 02:23:48
41阅读
代码清单3-8int nTargetLen = N + 1; // 设置目标长度为总长度+1int pBegin = 0; // 初始指针int pEnd = 0; // 结束指针int nLen = N; // 目标数组的长度为Nin...
原创 2021-08-18 02:23:53
72阅读
代码清单3-1char src[] = ”AABBCD”;char des[] = ”CDAA”;int len = strlen(src);for(int i = 0; i < len; i++) { char tempchar = src[0]; for(int j = 0; j < len - 1; j++) src[j] = ...
原创 2021-08-18 02:24:18
50阅读
代码清单3-2char c[10][10] = { "", //0 "", //1 "ABC", //2 "DEF", //3 "GHI", //4 "JKL", //5 "MNO", //6 "PQRS", //7 "TUV", //8 "WXYZ", //9...
原创 2021-08-18 02:24:19
55阅读
代码清单3-8 int nTargetLen = N + 1; // 设置目标长度为总长度+1 int pBegin = 0; // 初始指针 in
原创 2022-03-04 10:48:31
9阅读
代码清单3-11 // 数据结构定义 struct NODE { NODE* pLeft; // 左子树 NODE* pRight; // 右子树
原创 2022-03-04 10:49:26
45阅读
代码清单3-10 class Queue { public: Type MaxValue(Type x, Type y) { if(x > y) return x; else return y; } Type Queue::Max() { ...
原创 2022-03-04 10:51:44
51阅读
代码清单3-9 class stack { public: stack() { stackTop = -1; maxStackItemIndex = -1; } void Push(Type x) { stackTop++; if(stackTop >= MAX...
原创 2022-03-04 10:54:29
353阅读
代码清单3-6 Int CalculateStringDistance(string strA, int pABegin, int pAEnd, string strB, int pBBegin, int pBEnd) { if(pABegin > pAEnd) { if(pBBegin > pBEnd) r...
原创 2022-03-04 10:54:36
33阅读
代码清单3-5 void RecursiveSearch(int* number, int* answer, int index, int n) { if(index == n) { for(int i = 0; i < m; i++) printf("%c", c[number[i]][answer[i]]); ...
原创 2022-03-04 10:54:43
15阅读
代码清单3-7 void DeleteRandomNode(node* pCurrent) { Assert(pCurrent != NULL); node* pNext = pCurrent -> next; if(pNext != NULL) { pCurrent -> next = pNext -> next; ...
原创 2022-03-04 10:55:05
21阅读
代码清单3-1 char src[] = ”AABBCD”; char des[] = ”CDAA”; int len = strlen(src); for(int i = 0; i < len; i++) {
原创 2022-03-04 11:08:53
46阅读
代码清单3-15 // 层次遍历二叉树 // root,二叉树的根节点 void PrintNodeByLevel(Node* root) { for(int level=0; ; level++) { if(!PrintNodeAtLevel(root, level)) break; cout <&...
原创 2022-03-04 10:45:52
10阅读
代码清单3-13 // 输出以root为根节点中的第level层中的所有节点(从左到右), 成功返回1, // 失败则返回0 // @param // root 为二叉树的根节点 // level为层次数,其中根节点为第0层 int PrintNodeAtLevel(Node* root, int level) { if(!root || level < 0) ...
原创 2022-03-04 10:46:12
22阅读
  • 1
  • 2
  • 3
  • 4
  • 5