C資料結構 字串操作公升級版

2021-10-04 05:37:41 字數 2242 閱讀 7352

leetcode271題,字串的編碼與解碼。

請你設計乙個演算法,可以將乙個字串列表編碼成為乙個字串,並且可以在接收端被解碼回原來的字串列表。

1、取了%號來做識別長度,用strsize%len0%str[0]len1%str[1]…這樣的方式來拼接,保證字串前面都是數字和%的方式,來告訴對端當前的size,這個思想比較靈魂,借鑑了題解。

2、編碼過程中,使用sprintf函式快速把整型的len錄入到字串,使用strcat進行str[i]的拼接

3、指標可以用+1移位的方法,來讓字串往下走,另外如果當前字串沒有結束符,可以使用memcpy+賦值末尾為』\0』來生成字串。

leetcode71題,簡化路徑。/a/. . /. ./b/. ./c//.//其實路徑就是/c

1、char tmp[200][25]來存臨時的char,特別好用,特別好除錯,別想不開去申請空間去存。記得賦初值,不然strcat會報錯,tmp[i][0] = '\0';

2、strcmp報錯,檢查入參一定要是變數,用comp和comp1來替換

3、strcat報錯,檢查入參是否賦值滿足條件。

4、memcpy(retfinal, rettmp, retlen);一定要申請足夠的空間。

之前寫過c資料結構-字串操作 的故事,這兩個算是乙個應用類吧。

char

*simplifypath

(char

* path)

count =0;

p =strtok

(path,

"/")

;char comp=

".";

char comp2=

".."

;while

(p !=

null

)elseif(

strcmp

(p, comp2)==0

)else

p =strtok

(null

,"/");

}char rettmp[

5000];

rettmp[0]

='\0'

;for

(i =

0; i < count; i++)if

(count ==0)

int retlen =

strlen

(rettmp)+1

;char

*retfinal =

(char*)

malloc

(retlen)

; retfinal[0]

='\0'

;memcpy

(retfinal, rettmp, retlen)

;return retfinal;

}

#define maxlen 50000

char

*encode

(char

** strs,

int strssize)

char

* ret =

(char*)

malloc

(count +1)

;memcpy

(ret, tmp, count +1)

;return ret;

}char**

decode

(char

* s,

int* returnsize)

s = s +1;

if(strsize ==0)

count =0;

char

**ret =

(char**

)malloc

(sizeof

(char*)

*strsize)

;while

(count < strsize)

s = s +1;

ret[count]=(

char*)

malloc

(len +1)

;memcpy

(ret[count]

, s, len)

; ret[count++

][len]

='\0'

; s = s + len;

}*returnsize = count;

return ret;

}

資料結構 排序(氣泡排序公升級版)

排序 氣泡排序法公升級版 include include include include 氣泡排序 氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較相鄰的兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需...

字串 P1553 數字反轉(公升級版)

給定乙個數,請將該數各個位上數字反轉得到乙個新數。這次與noip2011普及組第一題不同的是 這個數可以是小數,分數,百分數,整數。整數反轉是將所有數字對調 小數反轉是把整數部分的數反轉,再將小數部分的數反轉,不交換整數部分與小數部分 分數反轉是把分母的數反轉,再把分子的數反轉,不交換分子與分母 百...

C 資料結構 字串

1 菜鳥教程 c 字串 2 3 4 官網教程 5 教程中的注釋 6 詳細的串定義與模式匹配演算法 1 串的定義 串 字串的簡稱 是由零個或多個字元組成的有限序列,一般記為s a1a2a3 an 其中ai可以是字母,數字或者其他字元,零個字元的串稱為空串。串中 任意個連續的字元組成的子串行 稱為該串的...