diff --git a/05_ReplaceSpaces/ReplaceSpaces.cpp b/05_ReplaceSpaces/ReplaceSpaces.cpp index dae3293..c753c1e 100644 --- a/05_ReplaceSpaces/ReplaceSpaces.cpp +++ b/05_ReplaceSpaces/ReplaceSpaces.cpp @@ -8,24 +8,24 @@ Distributed under the BSD license. *******************************************************************/ //================================================================== -// 《剑指Offer——名企面试官精讲典型编程题》代码 -// 作者:何海涛 +// 銆婂墤鎸嘜ffer鈥斺斿悕浼侀潰璇曞畼绮捐鍏稿瀷缂栫▼棰樸嬩唬鐮 +// 浣滆咃細浣曟捣娑 //================================================================== -// 面试题5:替换空格 -// 题目:请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“We are happy.”, -// 则输出“We%20are%20happy.”。 +// 闈㈣瘯棰5锛氭浛鎹㈢┖鏍 +// 棰樼洰锛氳瀹炵幇涓涓嚱鏁帮紝鎶婂瓧绗︿覆涓殑姣忎釜绌烘牸鏇挎崲鎴"%20"銆備緥濡傝緭鍏モ淲e are happy.鈥濓紝 +// 鍒欒緭鍑衡淲e%20are%20happy.鈥濄 #include #include -/*length 为字符数组str的总容量,大于或等于字符串str的实际长度*/ +/*length 涓哄瓧绗︽暟缁剆tr鐨勬诲閲忥紝澶т簬鎴栫瓑浜庡瓧绗︿覆str鐨勫疄闄呴暱搴*/ void ReplaceBlank(char str[], int length) { if(str == nullptr && length <= 0) return; - /*originalLength 为字符串str的实际长度*/ + /*originalLength 涓哄瓧绗︿覆str鐨勫疄闄呴暱搴*/ int originalLength = 0; int numberOfBlank = 0; int i = 0; @@ -39,9 +39,9 @@ void ReplaceBlank(char str[], int length) ++ i; } - /*newLength 为把空格替换成'%20'之后的长度*/ + /*newLength 涓烘妸绌烘牸鏇挎崲鎴'%20'涔嬪悗鐨勯暱搴*/ int newLength = originalLength + numberOfBlank * 2; - if(newLength > length) + if((newLength+1) > length) return; int indexOfOriginal = originalLength; @@ -63,7 +63,7 @@ void ReplaceBlank(char str[], int length) } } -// ====================测试代码==================== +// ====================娴嬭瘯浠g爜==================== void Test(char* testName, char str[], int length, char expected[]) { if(testName != nullptr) @@ -81,7 +81,7 @@ void Test(char* testName, char str[], int length, char expected[]) printf("failed.\n"); } -// 空格在句子中间 +// 绌烘牸鍦ㄥ彞瀛愪腑闂 void Test1() { const int length = 100; @@ -90,7 +90,7 @@ void Test1() Test("Test1", str, length, "hello%20world"); } -// 空格在句子开头 +// 绌烘牸鍦ㄥ彞瀛愬紑澶 void Test2() { const int length = 100; @@ -99,7 +99,7 @@ void Test2() Test("Test2", str, length, "%20helloworld"); } -// 空格在句子末尾 +// 绌烘牸鍦ㄥ彞瀛愭湯灏 void Test3() { const int length = 100; @@ -108,7 +108,7 @@ void Test3() Test("Test3", str, length, "helloworld%20"); } -// 连续有两个空格 +// 杩炵画鏈変袱涓┖鏍 void Test4() { const int length = 100; @@ -117,13 +117,13 @@ void Test4() Test("Test4", str, length, "hello%20%20world"); } -// 传入nullptr +// 浼犲叆nullptr void Test5() { Test("Test5", nullptr, 0, nullptr); } -// 传入内容为空的字符串 +// 浼犲叆鍐呭涓虹┖鐨勫瓧绗︿覆 void Test6() { const int length = 100; @@ -132,7 +132,7 @@ void Test6() Test("Test6", str, length, ""); } -//传入内容为一个空格的字符串 +//浼犲叆鍐呭涓轰竴涓┖鏍肩殑瀛楃涓 void Test7() { const int length = 100; @@ -141,7 +141,7 @@ void Test7() Test("Test7", str, length, "%20"); } -// 传入的字符串没有空格 +// 浼犲叆鐨勫瓧绗︿覆娌℃湁绌烘牸 void Test8() { const int length = 100; @@ -150,7 +150,7 @@ void Test8() Test("Test8", str, length, "helloworld"); } -// 传入的字符串全是空格 +// 浼犲叆鐨勫瓧绗︿覆鍏ㄦ槸绌烘牸 void Test9() { const int length = 100; diff --git a/17_Print1ToMaxOfNDigits/Print1ToMaxOfNDigits.cpp b/17_Print1ToMaxOfNDigits/Print1ToMaxOfNDigits.cpp index d3d6182..6e1fa3a 100644 --- a/17_Print1ToMaxOfNDigits/Print1ToMaxOfNDigits.cpp +++ b/17_Print1ToMaxOfNDigits/Print1ToMaxOfNDigits.cpp @@ -8,22 +8,23 @@ Distributed under the BSD license. *******************************************************************/ //================================================================== -// 《剑指Offer——名企面试官精讲典型编程题》代码 -// 作者:何海涛 +// 銆婂墤鎸嘜ffer鈥斺斿悕浼侀潰璇曞畼绮捐鍏稿瀷缂栫▼棰樸嬩唬鐮 +// 浣滆咃細浣曟捣娑 //================================================================== -// 面试题17:打印1到最大的n位数 -// 题目:输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则 -// 打印出1、2、3一直到最大的3位数即999。 +// 闈㈣瘯棰17锛氭墦鍗1鍒版渶澶х殑n浣嶆暟 +// 棰樼洰锛氳緭鍏ユ暟瀛梟锛屾寜椤哄簭鎵撳嵃鍑轰粠1鏈澶х殑n浣嶅崄杩涘埗鏁般傛瘮濡傝緭鍏3锛屽垯 +// 鎵撳嵃鍑1銆2銆3涓鐩村埌鏈澶х殑3浣嶆暟鍗999銆 #include #include +#include void PrintNumber(char* number); bool Increment(char* number); void Print1ToMaxOfNDigitsRecursively(char* number, int length, int index); -// ====================方法一==================== +// ====================鏂规硶涓==================== void Print1ToMaxOfNDigits_1(int n) { if (n <= 0) @@ -41,8 +42,8 @@ void Print1ToMaxOfNDigits_1(int n) delete[]number; } -// 字符串number表示一个数字,在 number上增加1 -// 如果做加法溢出,则返回true;否则为false +// 瀛楃涓瞡umber琛ㄧず涓涓暟瀛楋紝鍦 number涓婂鍔1 +// 濡傛灉鍋氬姞娉曟孩鍑猴紝鍒欒繑鍥瀟rue锛涘惁鍒欎负false bool Increment(char* number) { bool isOverflow = false; @@ -76,7 +77,7 @@ bool Increment(char* number) return isOverflow; } -// ====================方法二==================== +// ====================鏂规硶浜==================== void Print1ToMaxOfNDigits_2(int n) { if (n <= 0) @@ -109,9 +110,9 @@ void Print1ToMaxOfNDigitsRecursively(char* number, int length, int index) } } -// ====================公共函数==================== -// 字符串number表示一个数字,数字有若干个0开头 -// 打印出这个数字,并忽略开头的0 +// ====================鍏叡鍑芥暟==================== +// 瀛楃涓瞡umber琛ㄧず涓涓暟瀛楋紝鏁板瓧鏈夎嫢骞蹭釜0寮澶 +// 鎵撳嵃鍑鸿繖涓暟瀛楋紝骞跺拷鐣ュ紑澶寸殑0 void PrintNumber(char* number) { bool isBeginning0 = true; @@ -131,7 +132,7 @@ void PrintNumber(char* number) printf("\t"); } -// ====================测试代码==================== +// ====================娴嬭瘯浠g爜==================== void Test(int n) { printf("Test for %d begins:\n", n); diff --git a/41_StreamMedian/StreamMedian.cpp b/41_StreamMedian/StreamMedian.cpp index 84624c6..4ae4d79 100644 --- a/41_StreamMedian/StreamMedian.cpp +++ b/41_StreamMedian/StreamMedian.cpp @@ -8,14 +8,14 @@ Distributed under the BSD license. *******************************************************************/ //================================================================== -// 《剑指Offer——名企面试官精讲典型编程题》代码 -// 作者:何海涛 +// 銆婂墤鎸嘜ffer鈥斺斿悕浼侀潰璇曞畼绮捐鍏稿瀷缂栫▼棰樸嬩唬鐮 +// 浣滆咃細浣曟捣娑 //================================================================== -// 面试题41:数据流中的中位数 -// 题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么 -// 中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值, -// 那么中位数就是所有数值排序之后中间两个数的平均值。 +// 闈㈣瘯棰41锛氭暟鎹祦涓殑涓綅鏁 +// 棰樼洰锛氬浣曞緱鍒颁竴涓暟鎹祦涓殑涓綅鏁帮紵濡傛灉浠庢暟鎹祦涓鍑哄鏁颁釜鏁板硷紝閭d箞 +// 涓綅鏁板氨鏄墍鏈夋暟鍊兼帓搴忎箣鍚庝綅浜庝腑闂寸殑鏁板笺傚鏋滀粠鏁版嵁娴佷腑璇诲嚭鍋舵暟涓暟鍊硷紝 +// 閭d箞涓綅鏁板氨鏄墍鏈夋暟鍊兼帓搴忎箣鍚庝腑闂翠袱涓暟鐨勫钩鍧囧笺 #include #include @@ -73,7 +73,7 @@ template class DynamicArray if((size & 1) == 1) median = min[0]; else - median = (min[0] + max[0]) / 2; + median = (min[0] + max[0]) / 2.0; return median; } @@ -83,7 +83,7 @@ template class DynamicArray vector max; }; -// ====================测试代码==================== +// ====================娴嬭瘯浠g爜==================== void Test(char* testName, DynamicArray& numbers, double expected) { if(testName != nullptr)