當前位置:首頁 » 文件管理 » 解壓字元串

解壓字元串

發布時間: 2022-09-18 00:16:07

python怎麼解壓壓縮的字元串數據

這個先要看看你的壓縮方式,找到對應的解壓方式就ok了。

如果解決了您的問題請採納!
如果未解決請繼續追問!

Ⅱ python怎麼解壓壓縮的字元串數據

import StringIO
import gzip
compresseddata = gzip方式壓縮的字元串(html)
compressedstream = StringIO.StringIO(compresseddata)
gzipper = gzip.GzipFile(fileobj=compressedstream)
data = gzipper.read() # data就是解壓後的數據!

Ⅲ C語言 解壓縮字元串

如果數據結構是數組的話,主要是要解決兩個問題,一是統計重復的字元,二是確定數組壓縮後每個元素在數組中所處的位置。
可以用一個指針遍歷數組,另一個指針標記存儲位置。
字元串或串(String)是由數字、字母、下劃線組成的一串字元。一般記為
s="a1a2···an"(n>=0)。它是編程語言中表示文本的數據類型。
通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字元串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。

Ⅳ 字元串壓縮與解壓縮

由於精度問題,該演算法的壓縮能力有限,字元串長度不能過長,否則會出現溢出,壓縮會出錯。還有,忘了對空格鍵處理,所以你一旦輸入空格就會結束字元串輸入

#include<iostream>
#include<math.h>
#include<string>
#include<vector>

using namespace std;

struct node
{
char elem;
double weigh;
double low;
double high;
double rang;
};

////////////////////

double value(string &code)
{
double res=0;
for(int i=0;i<code.size();i++)
{
if(code[i]=='1')
res=res+pow(2,-(i+1));
}

return res;
}

/////////////////////

int search(vector<node> &array,char &e)
{
for(int i=0;i<array.size();i++)
{
if(array[i].elem==e)
return i;
}
return -1;
}

//////////////////////

void set(string &data,vector<node> &array)
{
cin>>data;
data=data+'$';
node temp;
for(int i=0;i<data.size();i++)
{
int f=0;
for(int j=0;j<array.size();j++)
{
if(array[j].elem==data[i])
{
array[j].weigh++;
f=1;
break;
}
}
if(f==1)continue;

temp.elem=data[i];
temp.weigh=1;
array.push_back(temp);
}

array[0].low=0;
array[0].rang=array[0].weigh/data.size();
array[0].high=array[0].low+array[0].rang;
for(i=1;i<array.size();i++)
{
array[i].low=array[i-1].high;
array[i].rang=array[i].weigh/data.size();
array[i].high=array[i].low+array[i].rang;
}
}

//////////////////////

void output(vector<node> &array)
{
cout<<"elem low high rang"<<endl;
for(int i=0;i<array.size();i++)
{

cout<<array[i].elem;
cout.width(10);
cout<<array[i].low;
cout.width(10);
cout<<array[i].high;
cout.width(10);
cout<<array[i].rang<<endl;
}
}

///////////

void getarith(string &data,vector<node> &array,vector<node> &arith)
{
node temp;
int t=search(array,data[0]);
temp=array[t];
arith.push_back(temp);
for(int i=1;i<data.size();i++)
{
temp.elem=data[i];
int t=search(array,data[i]);
temp.low=arith[i-1].low+array[t].low*arith[i-1].rang;
temp.rang=arith[i-1].rang*array[t].rang;
temp.high=temp.low+temp.rang;
arith.push_back(temp);
}
}

///////////////

void code(double low,double high,string &res)
{
while(value(res)<low)
{
string temp=res+'1';
if(value(temp)>high)
res=res+'0';
else
res=temp;
}
}
////////////

void decode(double math,vector<node> &array)
{
while(1)
{
for(int i=0;;i++)
{
if(math<array[i].high)
break;
}
if(array[i].elem=='$')break;
cout<<array[i].elem;

math=math-array[i].low;
math=math/array[i].rang;
}
}

//////////////////
int main()
{
string data;
vector<node> array;
set(data,array);
string result;
vector<node> arith;

/* array[0].elem='a';
array[0].low=0;
array[0].rang=0.2;
array[0].high=0.2;

array[1].elem='b';
array[1].low=0.2;
array[1].rang=0.1;
array[1].high=0.3;

array[2].elem='c';
array[2].low=0.3;
array[2].rang=0.2;
array[2].high=0.5;

array[3].elem='d';
array[3].low=0.5;
array[3].rang=0.05;
array[3].high=0.55;

array[4].elem='e';
array[4].low=0.55;
array[4].rang=0.3;
array[4].high=0.85;

array[5].elem='f';
array[5].low=0.85;
array[5].rang=0.05;
array[5].high=0.9;

array[6].elem='$';
array[6].low=0.9;
array[6].rang=0.1;
array[6].high=1;*/

getarith(data,array,arith);

cout<<"字元數據表為:"<<endl;
output(array);

cout<<"輸入字元串的算術編碼數據表為:"<<endl;
output(arith);

string res;
code(arith[arith.size()-1].low,arith[arith.size()-1].high,res);

cout<<"字元串的算術編碼為:"<<endl;
cout<<res<<endl;

double math=value(res);
cout<<math<<endl;
cout<<endl<<"解碼結果為:"<<endl;
decode(math,array);

cout<<endl;
system("pause");
return 0;
}

Ⅳ 輸入wa字元串未知的解壓方法

wa的字元串是weakauras2的配置文件。
然後在游戲中的聊天欄里輸入命令:/WA來調出WA的設置頁面。
在WA頁面的右下角有一個導入字元串的功能,點開該選項,把你之前復制的字元串復制到裡面,導入即可。

Ⅵ python怎麼解壓壓縮的字元串數據

一個簡單的例子
1 import urllib2
2 from StringIO import StringIO
3 import gzip
4
5 def loadData(url):
6 request = urllib2.Request(url)
7 request.add_header('Accept-encoding', 'gzip')
8 response = urllib2.urlopen(request)
9 if response.info().get('Content-Encoding') == 'gzip':
10 print 'gzip enabled'
11 buf = StringIO(response.read())
12 f = gzip.GzipFile(fileobj=buf)
13 data = f.read()
14 else:
15 data = response.read()
16 return data

~如果你認可我的回答,請及時點擊【採納為滿意回答】按鈕
~~手機提問的朋友在客戶端右上角評價點【滿意】即可。

Ⅶ C語言 解壓縮字元串

#include<stdio.h>

intmain()

{

chars[50],s1[100];

inti=0,j=0,k,n;

gets(s);//輸入壓縮後的字元串

while(s[i])

{

s1[j]=s[i];

//因為形式是先字元後數字,所以第一個肯定是字元,先賦入另一個數組以便後續操作。

i++;j++;//遞增,開始處理下一位的數字

n=0;

while(s[i]>='0'&&s[i]<='9')//只要是數字就要進入循環統計

{

n*=10;

n+=s[i]-'0';

i++;

}

for(k=0;k<n-1;k++)

//因為解壓縮的字元已經存入數組s1,所以只剩下n-1要再放入s1

s1[j+k]=s1[j-1];

if(n>0)//注意,一定要n>0因為有可能是連續字元,本來就沒被壓縮這時如果還把j加上n-1就反而是讓j減小了。

j+=n-1;

}

s1[j]='';//處理結束後,最後一個設為空字元結束。

printf("%s ",s1);

return0;

}

(7)解壓字元串擴展閱讀

C語言:數據結構-稀疏矩陣的壓縮存儲

稀疏矩陣的壓縮存儲原理,只存儲非零元素ai,j和相應的行、列序號i、j。具體方法:對稀疏矩陣中每一個非零元素設定一個三元組(i,j,ai,j)。

將所有三元組按行優先排列,組成一個三元組表(線性表)。只要存儲三元組表和該矩陣的行、列數,就能唯一確定該矩陣。

Ⅷ 字元串解壓縮

剛才編成了壓縮的程序,不好意思,現在的可以解壓了。
程序沒有給你編寫讀寫文件的內容,文件讀寫自已去編,那個相對就簡單了,程序只介紹了實現基本功能的內容。你可以輸入3A4B7D測試。
void
main()
{int
m=0;int
j=0;
//string
a;
//char
c[111];
char
a[111];
char
b[111];
scanf("%s",a);
for(int
i=0;a[i]!='\0';i++)
{
cout<<"a"<
1&&a[i]-'0'<9)
{
m=a[i]-'0';}
else{b[j]=a[i];j++;}
while(m>1)
{
b[j]=a[i+1];
j++;
m--;
}
}
cout<
評論
0
0
0
載入更多

Ⅸ jszip如何解壓字元串

其實php對gzip解壓很簡單,用內置的gzdecode函數就可以了,不過很可惜我配置了半天也無法支持gzdecode函數,所以只好變通一下: 復制代碼 代碼如下: if (!function_exists('gzdecode')) { function gzdecode ($data) { $flags = ord(substr($data, 3, 1)); $headerlen = 10; $extralen = 0; $filenamelen = 0; if ($flags & 4) { $extralen = unpack('v' ,substr($data, 10, 2)); $extralen = $extralen[1]; $headerlen += 2 + $extralen; } if ($flags & 8) // Filename $headerlen = strpos($data, chr(0), $headerlen) + 1; if ($flags & 16) // Comment $headerlen = strpos($data, chr(0), $headerlen) + 1; if ($flags & 2) // CRC at end of file $headerlen += 2; $unpacked = @gzinflate(substr($data, $headerlen)); if ($unpacked === FALSE) $unpacked = $data; return $unpacked; } } 調用方法很簡單: 復制代碼 代碼如下: $f=@file_get_contents(""); echo gzdecode($f);

Ⅹ python怎麼解壓壓縮的字元串數據

importurllib2
fromStringIOimportStringIO
importgzip

defloadData(url):
request=urllib2.Request(url)
request.add_header('Accept-encoding','gzip')
response=urllib2.urlopen(request)
ifresponse.info().get('Content-Encoding')=='gzip':
print'gzipenabled'
buf=StringIO(response.read())
f=gzip.GzipFile(fileobj=buf)
data=f.read()
else:
data=response.read()
returndata

熱點內容
網上買了伺服器怎麼在電腦連接失敗怎麼辦 發布:2024-10-10 21:18:35 瀏覽:961
安卓息屏壁紙在哪個文件夾 發布:2024-10-10 21:11:58 瀏覽:406
eer資料庫 發布:2024-10-10 21:06:08 瀏覽:707
ftp匿名用戶上傳 發布:2024-10-10 21:06:06 瀏覽:753
凱越原始密碼多少 發布:2024-10-10 21:06:04 瀏覽:192
捏脆泥解壓 發布:2024-10-10 20:56:25 瀏覽:704
開瀏覽器顯示腳本錯誤信息 發布:2024-10-10 20:48:14 瀏覽:8
wii安卓模擬器怎麼用 發布:2024-10-10 20:47:35 瀏覽:500
制度宣傳視頻腳本 發布:2024-10-10 20:34:05 瀏覽:575
如何用電腦主機搭建伺服器 發布:2024-10-10 20:08:25 瀏覽:643