導航:首頁 > 文件處理 > 類字元串壓縮

類字元串壓縮

發布時間:2023-09-13 03:08:21

❶ c++怎麼壓縮字元串

一個個讀入字元,記住當前一個和上一個
如果當前和上一個相同,計數加一
不同那麼把上一個和計數放入結果字元串,上一字元值替換成當前,計數設置為1
接收到換行或者eof時結束程序並輸出

❷ 用java如何實現壓縮字元串

package javase1.day02;
/**
* 1)一種字元串壓縮演算法
* str ="aaaabbccccddeaaa"
* 壓縮為:"4a2b4c2d1e3a"
* 原理實現:
* str = "aaaabbccccddeaaa"
*
* c = str.charAt(i)//c是每個字元
* 1) 初始化
* StringBuilder buf = new StringBuilder();
* int count = 0;代表相同的字元個數
* char ch = str.charAt(0);代表正在統計的相同字元'a'
* 2) 從i=1開始迭代每個字元
* c = str.charAt(i);//c是每個當前字元
* 3) 檢查當前字元c與被統計ch是否一致
* 如果一致 count++
* 否則(不一致)
* 向緩沖區buf增加count+ch
* count=0,ch=c;
* 3)沒有下個字元就結束
* 4)還有字元串嗎?回到2)
*
* 2)實現還原演算法
* str = "4a2b4c2d1e3a";
* i
*/
public class Demo5 {
public static void main(String[] args) {
String s = comp("aaaawwwwe");
System.out.println(s);
// System.out.println(decomp(s));

}
public static String comp(String str){
int i = 1;
StringBuilder buf = new StringBuilder();
int count = 1;
char ch = str.charAt(0);
for(;;){
char c = i==str.length() ? '\10':str.charAt(i);
if(c==ch){
count++;
}else{
if(count == 1)
buf.append(ch);
else
buf.append(count).append(ch);
count=1;
ch = c;
}
i++;
if(i==str.length()+1){
break;
}
}
return buf.toString();

}
}

❸ java 字元串加密 加密結果的長度如何壓縮

1. 可以考慮引入字元A~Z,加上0~9,形成36進制(更進一步可以大小寫敏感,加上a~z,形成62進制);
2. 將上述字元串 除以36 取余;作為個位數;上述字元串 除以36 取整,作為結果,重復本步取余計算。
3. 獲得結果。

4. 反向解析,將上述結果,分別按位數 乘以 36 ;
5. 最後合並相加,獲得原字元串。

❹ 字元串壓縮 C#

唔.0 分,給你提示好了。

首先不推薦壓縮字元串,基於「時間換空間」或者「空間換時間」的程序設計定律,相對壓縮後得到的內存空間,浪費的CPU開銷比較起來得不償失。尤其是string這一特殊引用類型。

硬要體驗的話,可以嘗試使用Encoding,將字元串轉換為byte流,對byte流壓縮後保存。

❺ C#string類型壓縮,最低能壓縮多少

string能夠壓縮多少,要看具體它攜帶的信息。
比如string s = new string('x', 10000000)一千萬個字元,由於信息量少,可以壓縮為幾個位元組。
而一個信息量大的串,比如100個隨即字元的串,可能都壓縮不了。

從信息理論上說,一定有東西是壓縮不了的。

抽屜原理告訴我們,3個蘋果放入2個抽屜,一定有抽屜要放一個以上的蘋果。
100個位元組,所有的組合有2的800次方那麼多。
而101個位元組的組合,有2的808次方那麼多,這些組合是不能放入100個位元組的抽屜而不重復的。
也就是說,某些數據是不能被壓縮的,哪怕是只壓縮一個位元組也辦不到。

❻ 使用C語言實現字元串的壓縮。

/*
原串:111225555
壓縮後:312245
原串:333AAAbbbb
壓縮後:333A4b
原串:ASXDCdddddd
壓縮後:1A1S1X1D1C6d
Pressanykeytocontinue
*/
#include<stdio.h>
#include<string.h>

char*CompressStr(chars[]){
chart[255];
inti=0,j,k=0;
while(s[i]){
j=i+1;
while(s[i]==s[j])++j;
t[k++]=j-i+'0';
t[k++]=s[i];
i=j;
}
t[k]='';
strcpy(s,t);
returns;
}

intmain(void){
chari,s[][20]={"111225555","333AAAbbbb","ASXDCdddddd"};
for(i=0;i<3;++i){
printf("原串:%s ",s[i]);
printf("壓縮後:%s ",CompressStr(s[i]));
}
return0;
}

閱讀全文

與類字元串壓縮相關的資料

熱點內容
互聯網程序員下班可以學嗎 瀏覽:115
通達信海洋狀態指標源碼 瀏覽:548
工作壓力大有什麼好的解壓方法 瀏覽:925
數字還可以怎樣加密 瀏覽:116
為什麼安卓沒白鳥 瀏覽:237
程序員投行 瀏覽:325
java多線程讀取文件 瀏覽:148
香港外貿伺服器有什麼好處 瀏覽:614
鄧倫參加密室大逃脫結果變成團寵 瀏覽:849
購買文件伺服器怎麼選擇 瀏覽:722
空調壓縮機高壓報警 瀏覽:502
u盤數控程序放哪個文件夾 瀏覽:856
python模擬微信登錄其他APP 瀏覽:304
綁扎鋼筋加密區規范 瀏覽:671
怎麼更換手機壁紙安卓 瀏覽:808
閑魚app賣手機怎麼走驗機 瀏覽:821
安卓三個按鍵音怎麼關閉 瀏覽:64
esp8266手機app源碼 瀏覽:713
伺服器如何建立多個站點 瀏覽:151
加密狗可以在筆記本上做賬嗎 瀏覽:888