原创 力扣(C++):僅僅反轉字母

題目描述 給定一個字符串 S,返回 “反轉後的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置發生反轉。 示例 1: 輸入:“ab-cd” 輸出:“dc-ba” 示例 2: 輸入:“a-bC-dEf-ghIj” 輸出:

原创 力扣(C++):僅僅反轉字母

題目描述 給定一個字符串 S,返回 “反轉後的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置發生反轉。 **示例 1: 輸入:“ab-cd” 輸出:“dc-ba” 示例 2: 輸入:“a-bC-dEf-ghIj” 輸

原创 根據二叉樹前序遍歷和後序遍歷的結果重建二叉樹

題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。 例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則

原创 手動實現一個簡單支持動態增長的棧

#include <stdio.h> #include <stdlib.h> #include <assert.h> typedef int DataType; //支持動態增長的棧 typedef struct Stack

原创 典型動態規劃問題, 連續子數組的最大和

題目描述 HZ偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全爲正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負

原创 字符串相加, 大數加法

題目描述 給定兩個字符串形式的非負整數 num1 和num2 ,計算它們的和。 注意: num1 和num2 的長度都小於 5100. num1 和num2 都只包含數字 0-9. num1 和num2 都不包含任何前導零。 你不

原创 數組中的第k個最大元素

問題描述 在未排序的數組中找到第 k 個最大的元素。請注意,你需要找的是數組排序後的第 k 個最大的元素,而不是第 k 個不同的元素。 示例 1: 輸入: [3,2,1,5,6,4] 和 k = 2 輸出: 5 示例 2: 輸入:

原创 關於C++的內存管理, 以及C++當中的 operator new和operator delete函數, 定位new表達式

在C語言當中, 動態內存的管理方式分爲 malloc / calloc / realloc 和 free malloc函數可以在堆上申請指定字節的內存空間, 申請成功返回申請到的空間的首地址, 如果申請失敗會返回NULL. v

原创 求n的階乘, 不使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句

題目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 代碼示例: class Sum{ public: Sum() {

原创 字符串區間部分翻轉

題目描述 給定一個字符串和一個整數 k,你需要對從字符串開頭算起的每個 2k 個字符的前k個字符進行反轉。如果剩餘少於 k 個字符,則將剩餘的所有全部反轉。如果有小於 2k 但大於或等於 k 個字符,則反轉前 k 個字符,並將剩餘

原创 關於C++當中泛型編程, 模板初階(函數模板, 類模板)詳解

C++泛型編程 在C++當中, 泛型編程是一個十分重要的概念, 那麼泛型編程到底是什麼? 而它的作用及優點在哪裏? 下面我們將一步步解釋C++當中的泛型編程, 函數模板和類模板 舉個簡單的例子, 在我們C語言當中, 如果我們想要實

原创 C++當中提供的字母和數字相關的判斷函數, 以及位運算對大小寫字母轉化的實現

字母數字相關判斷的函數 isalnum(char c) 判斷是否爲字母或者數字 isalpha(char c) 判斷是否爲字母 isdigit(char c)

原创 調整數組的順序使奇數位於偶數前面

題目描述: 輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 題目來源: 牛客網 思路: 主要利用插排的一個思

原创 二叉樹遍歷

題目描述 編一個程序,讀入用戶輸入的一串先序遍歷字符串,根據此字符串建立一個二叉樹(以指針方式存儲)。 例如如下的先序遍歷字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空樹。建立起此二叉樹以後,再對

原创 單值二叉樹

題目描述 如果二叉樹每個節點都具有相同的值,那麼該二叉樹就是單值二叉樹。 只有給定的樹是單值二叉樹時,才返回 true;否則返回 false。 示例1: 輸入:[1,1,1,1,1,null,1] 輸出:true 示例 2: