原创 最簡潔的代碼 求字符串中無重複的子串

這道 題是leetcode 上面的 一道題。常規解法需要兩層循環。這種解法不僅代碼簡潔,而且只需要一層循環。降低了複雜度。一起欣賞一下作者的代碼。 原題: Given a string, find the length of the l

原创 java UDP 發送報文問題

in  java UDP programming    the udppacket is binding a certain section of storage in computer memory, you can't change

原创 標準二維表問題,catalan數的應用

問題描述: 設n是一個正整數。2*n的標準二維表是由正整數1,2,…,2n組成的2*n數組,該數組的每行從左到右遞增,每列從上到下遞增。2*n的標準二維表全體記爲tab(n)。例如,當n=3時,tab(3)二維表如下圖所示。 1 2

原创 合併排序的思想與實現

合併排序算法是用分治策略實現對N個元素進行排序的算法。 基本思起是 : 將待排序元素分成大小大致相同的兩個子集合,分別對兩個子集合進行排序,最終將排好序的子集合合併成所要求的排好序的集合。 大致過程如下圖所示:  該算法的複雜度是

原创 KMP 算法的實現過程講解,圖解加算法說明

以前對KMP算法的理解不夠深刻,懂了幾天就忘了。今天心血來潮花了整整一天時間,仔細研究了KMP的算法思想和實現過程。感覺以後再也不會忘了。 KMP是一個效率非常高的字符串匹配算法。不過由於其難以理解,很多程序員一直是半懂的狀態。 kmp算

原创 快速排序算法的思想和幾種實現方式

快速排序算法是基於分治策略的另一個排序算法。 該方法的基本思想是: 1.先從數列中取出一個數作爲基準數,記爲x。 2.分區過程,將不小於x的數全放到它的右邊,不大於x的數全放到它的左邊。(這樣key的位置左邊的沒有大於key的,右邊的沒有

原创 c++數組遍歷十種方式

int ia[3][4] = {1,2,3,4,5,6,7,8}; //下標 for (int i = 0; i < 3; i++) {     for (int j = 0; j < 4; j++)     {         cout

原创 c++中string類split函數的實現

C++String類沒有spit庫函數,一下爲手動實現的代碼片段。#include <iostream> #include <string> #include <vector> #include <utility> using names

原创 組合問題的算法實現

/* 問題描述:對於一組各不相同的數字,從中任意抽取1-n個數字,構成一個新的集合。 求出所有的可能的集合。例如,對於集合{1,2,3},其所有子集爲{1},{2},{3},{1,2},{1,3},{2,3}{1,2,3}, 給定一個數

原创 python socket通信的小例子和幾點反思

服務器端的代碼非常簡單,收到客戶端連接建立後發送一個簡單的http 報文 # 導入 socket、sys 模塊 import socket import sys # 創建 socket 對象 serversocket = socket.

原创 全排列問題算法實現--遞歸

/*      設R={r1,r2,...rn}是要進行排列的n個元素.Ri=R-{ri}.集合X中元素的全排列記爲      Perm(X).(ri)Perm(X)表示在全排列Perm(X)的每一個排列前加上前綴ri得到的排列     

原创 python 整數越界問題

 python 內部自帶大整數運算能力,整數運算不會溢出,只要內存足夠,就oK 下面的例子演示了兩個32位整數加法的情況(通過位運算實現),爲了模擬溢出的效果,必須人工的進行位運算,~運算符除了求反,還是二進制的補運算符,運算過後的二進制

原创 TypeError: 'bytes' object is not callable解決辦法

python 遇到這個問題: 源碼如下 # 導入 socket、sys 模塊 import socket import sys # 創建 socket 對象 serversocket = socket.socket(

原创 Python 通過連接qq郵箱服務器發送郵件

python的smtplib提供了一種很方便的途徑發送電子郵件。它對smtp協議進行了簡單的封裝。 發送郵件主要用到了smtplib 和 email 代碼非常簡單,上代碼: import smtplib from email.mime.

原创 使用STL模板必須重載的運算符

STL各種容器和算法的sort和find函數對重載運算符的調用情況: 1) 二叉樹類型的容器的sort和find都會調用operator < 。 2)線性類型容器sort會調用operator <;線性容器使用std::find會調用op