Time of Update: 2018-12-04
函數將字串中的字元'*'移到串的前部分,前面的非'*'字元後移,但不能改變非'*'字元的先後順序,函數返回串中字元'*'的數量。 如原始串為:ab**cd**e*12,處理後為*****abcde12,函數並傳回值為5。(要求使用盡量少的時間和輔助空間)想法:有點像上篇中的刪除 字串的數字並壓縮。 解法:從後到前,遇到字母(非*),就與*交換。#include <stdio.h>#include <stdlib.h>#include
Time of Update: 2018-12-04
SignalDescriptionSIGABRT由調用abort函數產生,進程非正常退出SIGALRM用alarm函數設定的 timer逾時或setitimer函數設定的interval timer逾時SIGBUS某種特定的硬體異常,通常由記憶體訪問引起SIGCANCEL由Solaris Thread
Time of Update: 2018-12-04
/* ============================================================================ 題目:輸入一個已經按升序排序過的數組和一個數字,在數組中尋找兩個數,使得它們的和正好是輸入的那個數字。要求時間複雜度是O(n)。如果有多對數位和等於輸入的數字,輸出任意一對即可。例如輸入數組1、2、4、7、11、15和數字15。由於4+11=15,因此輸出4和11。 ====================================
Time of Update: 2018-12-04
#include <stdio.h>#include <stdlib.h>void pr_arr(int a[],int len){int i=0;for(i=0;i<len;++i){printf("%d ",a[i]);}printf("\n");}void swap(unsigned int *a,unsigned int *b){if(*a !=*b){*a^=*b;*b^=*a;*a^=*b;}}//一,初始時:radixN == 1<<31
Time of Update: 2018-12-04
用字串儲存兩個大數。 把加法分解成: 一,同一位上為 (a+b)%10 二,進位(a+b)/10 ,三,把第一數+進位感覺是遞迴了。但可以用迴圈在代替。 大數相乘也差不多,第二數的每一位元都與第一個數每一位相乘,然後相加起來.以下我們假設兩個字串裡都是數字,之裡不做判斷了.為瞭解題方便,我還把數字都移到數組的右端,方便相加.不足是會浪費一些時間#include <stdio.h>#include <stdlib.h>#include <string.h>
Time of Update: 2018-12-04
#include <iostream>using namespace std;class A{virtual void aa(){}};class B: public A{public:virtual void bb(){}};class C: public B{public:virtual void cc(){}};int main(){cout << sizeof(A) << endl;cout << sizeof(B) <<
Time of Update: 2018-12-04
訊號的“未決”是一種狀態,指的是從訊號的產生到訊號被處理前的這一段時間;可以通過 int sigpending (sigset_t *set) 和 int sigismember (const sigset_t *set, int signum) 查看某個訊號是未決的。 訊號的“阻塞”是一個開關動作,指的是阻止訊號被處理,但不是阻止訊號產生。
Time of Update: 2018-12-04
【問題描述】給定有n個連乘矩陣的維數,要求計算其採用最優計算次序時所用的乘法次數,即所要求計算的乘法次數最少。例如,給定三個連乘矩陣{A1,A2,A3}的維數分別是10*100,100*5和5*50,採用(A1A2)A3,乘法次數為10*100*5+10*5*50=7500次,而採用A1(A2A3),乘法次數為100*5*50+10*100*50=75000次乘法,顯然,最好的次序是(A1A2)A3,乘法次數為7500次。分析:矩陣鏈乘法問題描述:給定由n個矩陣構成的序列[A1,A2,...,A
Time of Update: 2018-12-04
定義函數 void perror(const char *s); perror ("open_port");函數說明 perror ( )用 來 將 上 一 個 函 數 發 生 錯 誤 的 原 因 輸 出 到 標 准 裝置 (stderr) 。參數 s 所指的字串會先列印出,後面再加上錯誤原因字串。此錯誤原因依照全域變數errno
Time of Update: 2018-12-04
/etc/group的格式如下:group_name:passwd:GID:user_list具體如下:root:x:0:daemon:x:1:bin:x:2:sys:x:3:adm:x:4:jack組名:口令:組標識號:組內使用者列表1)“組名”是使用者組的名稱,由字母或數字構成。與/etc/passwd中的登入名稱一樣,組名不應重複。2)“口令”欄位存放的是使用者組加密後的口令字。一般Linux系統的使用者組都沒有口令,即這個欄位一般為空白,或者是x。3)“組標識號”
Time of Update: 2018-12-04
/* * 一個長度為n的整數數組result,滿足result[i]=除input[i]之外所有數的乘積(不溢出),比如 * 輸入input={2,3,4,5};輸出 result={60,40,30,24}; *//* * 方法一:判斷有0的情況,如果有0則其他都為0.如果沒0,可使用先求全部乘積,再除以自身。 * 方法二:先儲存i位置前的乘積到result[i],再用一變數儲存i位置後的乘積,結果相乘,即可。 */#include <stdio.h>#include
Time of Update: 2018-12-04
exit()函數結束程式,返回一個值給作業系統,告知程式的最後狀態。在調用exit()函數之後,控制權會移交給作業系統。 在結束程式之前,exit()函數會調用之前使用atexit()註冊過的所有函數,按照LIFO次序調用,關閉所有開啟的檔案,刪除tmpfile()函數建立的所有臨時檔案。
Time of Update: 2018-12-04
單純使用‘ su ’切換成為 root 的身份,讀取的變數設定方式為 non-login shell 的方式,這種方式很多原本的變數不會被改變,若要完整的切換到新使用者的環境,必須要使用‘ su - username ’或‘ su -l username ’, 使用login-shell方式。才會連同 PATH/USER/MAIL 等變數都轉成新使用者的環境;因此使用su
Time of Update: 2018-12-04
#include "bst.h"#include <stdlib.h>#include <stdio.h>#define max(a,b) ((a)>(b) ? (a) : (b))/* ============================================================================ 求二叉樹中任意兩點的最大距離 =================================================
Time of Update: 2018-12-04
轉載請註明出處:http://blog.csdn.net/shandianling/article/details/7997163解釋:min()要求返回隊列中的最小值 max()要求返回隊列中的最大值 mid()要求返回隊列中倒數第(size()+1)/2小的值。說白了就是把隊列變成有序後最中間那個值。思想:把兩個雙向鏈表,一個儲存隊列順序,一個是有序的。然後就整成一個鏈表。
Time of Update: 2018-12-04
題目:在一個字串中找到第一個只出現一次的字元。如輸入abaccdeff,則輸出b。/* ============================================================================尋找一個字串中,第一隻出現一次的字元思想:用一個Map來記數,Map[A]=2表示A字母為2個數 ============================================================================
Time of Update: 2018-12-04
void pthread_cleanup_push(void (*rtn)(void *), void *arg);註冊一個線程終止時的清理函數 (類似atexit),後註冊的先執行。void pthread_cleanup_pop(int execute); 解除註冊最近一個註冊的線程清理函數,即線程清理函數使用類似棧的壓 (push)、彈(pop)方式進行註冊和解除;參數 execute 為0 時表示僅解除註冊,而不執行,非 0
Time of Update: 2018-12-04
printf與流,不妨也比較一下兩個的優缺點。 1. 先說printf的優點,也就這一點了,那就是代碼簡潔,格式化方便,可以在格式化字串裡一次性將輸出格式化。而ostream則需要一段一段地拆分,顯得比較煩鎖,特別是自訂輸出類型的格式時,如格式化輸出浮點的小數位元、十六進位輸出等,用ostream更煩鎖。2.ostream型別安全,而printf則不能保證型別安全。 2.1)printf容易產生輸出格式字串錯誤。 int i = –1; std::cout<<i; printf(“%
Time of Update: 2018-12-04
效率問題:見e文。 For just a few items, the difference is small. If you have many items you should definitely use a switch.If a switch contains more than five items, it's implemented using a lookup table or a hash list. This means that all items get the
Time of Update: 2018-12-04
通常在delete[]一個數組時,編譯器要按順序作如下兩件事情: 1. 對每個數組元素調用解構函式 2.