- 博客(15)
- 资源 (16)
- 收藏
- 关注
原创 正则表达式匹配
实现一个正则表达式匹配,要求支持'.'和'*'。'.'指单个字符,'*'指零或多个前面的字符。函数原型:bool isMatch(const char *s, const char *p)如:isMatch(“aa”,”a”) → falseisMatch(“aa”,”aa”) → trueisMatch(“aaa”,”aa”) → falseisMatch
2015-02-28 01:11:59 396
原创 向有序循环单向链表中插入节点
给定一个有序的循环单向链表和一个整数,要求将以该整数为值的新节点插入原链表中,新链表要求仍然有序。class Node{ public: Node(int v) { value = v; next = NULL; } int value; Node
2015-02-27 00:33:22 2681
原创 逐行打印二叉树
逐行打印二叉树,每行之间要换行。#include #include #include using namespace std;class Node{ public: Node(int v) { value = v; left = NULL; right = NULL; } int value; Node *left; Node *
2015-02-24 00:19:39 551
原创 有序单向链表转换为平衡搜索二叉树
class BSTNode{ public: BSTNode(int v) { value = v; left = NULL; right = NULL; } int value; BSTNode *left; BSTNode *right;};class ListNode{ public: ListNode(int v) {
2015-02-23 01:06:56 1752
原创 有序数组转换为平衡二叉搜索树
有一个增序排列的数组,将其转换为二叉搜索树。class Node{ public: Node(int v) { value = v; left = NULL; right = NULL; } private: int value; Node *left; Node *right;};Node* sortedArrayToBST(in
2015-02-22 23:51:48 1178
原创 K个数字和
给定n个正整数,整数 k 和目标数target。计算在n个数中找出k个数的和为目标数target的组合共有几种?比如:{1, 2, 3, 4}, k = 2, target = 5.则有两种组合:{1, 4}, {2, 3}.int kSum(int *A, int n, int k, int target){ if (A == NULL || n < 0 || k <
2015-02-18 00:50:54 786
原创 在常数时间内完成push,pop,getMin的栈
class GetMinStacke{ public: void push(int x) { elements.push(x); if (minStack.empty() || x <= minDtack.top()) { minStack.push(x
2015-02-13 00:15:53 781
原创 翻转无符号整数的比特位
给定一个无符号整数,要求将该整数的比特位按照高低位翻转。typedef unsigned int uint;uint swapbits(uint x, uint i, uint j){ uint low = (x >> i)&1; uint high = (x >> j)&1; if (low != high) { x ^= (1U
2015-02-11 23:27:06 1217
原创 翻转整数
将一个整数进行高低位的翻转。比如:123->321, -123->-321。#define INT_MAX ((int)(~0U>>1))int revert(int x){ bool negative = false; if (x < 0) { negative = true; x *= -1; } long long result = 0; while (x >
2015-02-08 01:22:43 586
原创 最长非重复连续子字符串
给定一个字符串,要求计算出最长的连续非重复子字符串的长度。比如:"abcabcdab"->4, "bbbb"->1,"dvdf"->3,"tmmzuxt"->5。class Solution {public: int lengthOfLongestSubstring(string s) { bool used[256]; memset(used, 0
2015-02-08 00:27:40 544
原创 删除字符串中的空格
给定一个字符串,删除其中的空格。如:"ab cde" ---> "abcde"。void removeSpace(char *str){ char *p1 = str; char *p2 = str; while (*p2) { if (*p2 != ' ') { *p1 = *p2;
2015-02-06 00:45:27 598
原创 二叉树的最低公共父节点
给定一个二叉树的根节点和另外两个节点p,q,计算p,q的最低公共节点。Node *LCA(Node *root, Node *p, Node *q){ if (root == NULL) { return NULL; } if ((p == root) || (q == root)) { return root
2015-02-06 00:21:37 480
原创 判断环形链表
给定一个单向链表,判断中间是否有环。 bool hasLoop(Node *head){ Node *slow = head; Node *fast = head; while (slow && fast && fast->next) { slow = slow->next; fast = fast->next->nex
2015-02-05 01:10:20 947
原创 分割链表
给定一个单向链表,要求从中间分成两个链表。如果长度是奇数,则左链表比右链表多一个节点。void SplitList(Node *head, Node **left, Node **right){ if (head == NULL) { return; } Node *slow = head; Node *fast = head
2015-02-05 00:53:56 660
原创 判断一个整数是否为回文数
判断一个整数是否为回文数,不能用额外空间。回文数比如:12321, 1331, 1001.class Solution {public: bool isPalindrome(int x) { if (x < 0) { return false; } if (x == 0)
2015-02-05 00:06:20 804
exceptional c++ style中文版 pdf 刘未鹏译
2010-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人