原创 [編程之美] 2.2 不要被階乘嚇倒

這一節給出了關於階乘的兩個問題,當然,並不是求階乘的值,而是求階乘的值的一些特性。 問題1:給定一個整數N,那麼N的階乘N! 末尾有多少個0? 如果將N! 的結果求出來,然後再計算末尾0的個數,那就要考慮是否會溢出,計算時間也要考慮。 這

原创 [編程之美] 2.6 精確表達浮點數

問題是將一個小數表示成一個分數。當然,只有有限小數和無限循環小數才能轉換爲分數。 對於無限循環小數,給定的格式是將循環節用括號括起來,比如:0.3333(3333)。 書中先只考慮了0到1的純小數,然後分有限小數和無限循環小數討論,書上講

原创 [APUE] 第四章習題解答

4.1 用stat函數替換程序4-1中的lstat函數,如若命令行參數之一是符號鏈接,會發生什麼變化。 lstat不會跟隨符號鏈接,因此,它所得到的屬性就是鏈接文件本身的屬性。如果換成了stat,就是符號鏈接所引用的文件的屬性了。 4.

原创 [C++] NRV優化

昨天,室友發給我一個程序讓我運行,代碼如下: #include <iostream> #include <string> using namespace std; class Trans { public: Trans() : a

原创 [編程之美] 2.5 尋找最大的K個數

這節給的題目是從一串數字中尋找最大的K個數,而且考慮數據量比較大的情況。 解法一首先考慮了快速排序和堆排序,但是,它們對所有的數據都進行了排序,然後考慮使用部分排序算法,如選擇排序和交換排序,它們能夠從一串數字中選擇前K個,但是,效率依舊

原创 [編程之美] 2.4 1的個數

本節給出的題目是: 給定一個十進制整數N,寫下從1開始,到N的所有整數,然後數一下其中出現的所有“1”的個數。 例如: N = 2,寫下1, 2。出現1個“1”。 N = 12,寫下1, 2, 3,4,5,6,7,8,9,10,11,12

原创 [LeetCode by golang] 771 寶石與石頭

1 題目 給定字符串J 代表石頭中寶石的類型,和字符串 S代表你擁有的石頭。 S 中每個字符代表了一種你擁有的石頭的類型,你想知道你擁有的石頭中有多少是寶石。 J 中的字母不重複,J 和 S中的所有字符都是字母。字母區分大小寫,因

原创 [LeetCode by golang] 657 機器人能否返回原點

1 題目 在二維平面上,有一個機器人從原點 (0, 0) 開始。給出它的移動順序,判斷這個機器人在完成移動後是否在 (0, 0) 處結束。 移動順序由字符串表示。字符 move[i] 表示其第 i 次移動。機器人的有效動作有 R(

原创 [LeetCode by golang] 617 合併二叉樹

1 題目 給定兩個二叉樹,想象當你將它們中的一個覆蓋到另一個上時,兩個二叉樹的一些節點便會重疊。 你需要將他們合併爲一個新的二叉樹。合併的規則是如果兩個節點重疊,那麼將他們的值相加作爲節點合併後的新值,否則不爲 NULL 的節點將

原创 [Jobdu OJ] 1006 ZOJ問題

題目描述: 對給定的字符串(只包含'z','o','j'三種字符),判斷他是否能AC。是否AC的規則如下:1. zoj能AC;2. 若字符串形式爲xzojx,則也能AC,其中x可以是N個'o' 或者爲空;3. 若azbjc 能AC,則

原创 [C++] [算法] [Linux] radix tree

今天看Linux內核代碼時,看到了radix tree,從書上大概地瞭解了radix tree的一些基本知識,包括它的結構和操作。由於Linux內核代碼不容易看懂,因此,打算自己家先實現一下radix tree,然後再看內核中的代碼,由於

原创 [LeetCode by golang] 1021 刪除最外層的括號

1 題目 有效括號字符串爲空 ("")、"(" + A + “)” 或 A + B,其中 A 和 B 都是有效的括號字符串,+ 代表字符串的連接。例如,"","()","(())()" 和 “(()(()))” 都是有效的括號字符串。

原创 [LeetCode by golang] 942 增減字符串匹配

1 題目 給定只含 “I”(增大)或 “D”(減小)的字符串 S ,令 N = S.length。 返回 [0, 1, …, N] 的任意排列 A 使得對於所有 i = 0, …, N-1,都有: 如果 S[i] == “I”,那麼

原创 [LeetCode by golang] 461 漢明距離

1 題目 兩個整數之間的漢明距離指的是這兩個數字對應二進制位不同的位置的數目。 給出兩個整數 x 和 y,計算它們之間的漢明距離。 注意: 0 ≤ x, y < 231. 示例: 輸入: x = 1, y = 4 輸出: 2 解釋:

原创 [LeetCode by golang] 535 TinyURL 的加密與解密

1 題目 TinyURL是一種URL簡化服務,比如:當你輸入一個URLhttps://leetcode.com/problems/design-tinyurl時,它將返回一個簡化的URL http://tinyurl.com/4e9i