亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java實(shí)現(xiàn)壓縮字符串和java字符串過(guò)濾

 更新時(shí)間:2014年04月27日 09:54:51   作者:  
這篇文章主要介紹了java實(shí)現(xiàn)壓縮字符串和java字符串過(guò)濾,需要的朋友可以參考下

題目一:通過(guò)鍵盤(pán)輸入一串小寫(xiě)字母(a~z)組成的字符串。

請(qǐng)編寫(xiě)一個(gè)字符串過(guò)濾程序,若字符串中出現(xiàn)多個(gè)相同的字符,將非首次出現(xiàn)的字符過(guò)濾掉。
比如字符串“abacacde”過(guò)濾結(jié)果為“abcde”。

要求實(shí)現(xiàn)函數(shù):

復(fù)制代碼 代碼如下:

void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);

【輸入】 pInputStr:輸入字符串
lInputLen:輸入字符串長(zhǎng)度
【輸出】 pOutputStr: 輸出字符串,空間已經(jīng)開(kāi)辟好,與輸入字符串等長(zhǎng);

【注意】只需要完成該函數(shù)功能算法,中間不需要有任何IO的輸入輸出

示例
輸入:“deefd”輸出:“def”
輸入:“afafafaf” 輸出:“af”
輸入:“pppppppp” 輸出:“p”

main函數(shù)已經(jīng)隱藏,這里保留給用戶(hù)的測(cè)試入口,在這里測(cè)試你的實(shí)現(xiàn)函數(shù),可以調(diào)用printf打印輸出
當(dāng)前你可以使用其他方法測(cè)試,只要保證最終程序能正確執(zhí)行即可,該函數(shù)實(shí)現(xiàn)可以任意修改,
但是不要改變函數(shù)原型。一定要保證編譯運(yùn)行不受影響。

題二:題目描述:

通過(guò)鍵盤(pán)輸入一串小寫(xiě)字母(a~z)組成的字符串。請(qǐng)編寫(xiě)一個(gè)字符串壓縮程序,將字符串中連續(xù)出席的重復(fù)字母進(jìn)行壓縮,并輸出壓縮后的字符串。

壓縮規(guī)則:
1. 僅壓縮連續(xù)重復(fù)出現(xiàn)的字符。比如字符串"abcbc"由于無(wú)連續(xù)重復(fù)字符,壓縮后的字符串還是"abcbc".
2. 壓縮字段的格式為"字符重復(fù)的次數(shù)+字符"。例如:字符串"xxxyyyyyyz"壓縮后就成為"3x6yz"

要求實(shí)現(xiàn)函數(shù):

復(fù)制代碼 代碼如下:

void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr);

【輸入】 pInputStr:輸入字符串
lInputLen:輸入字符串長(zhǎng)度
【輸出】 pOutputStr: 輸出字符串,空間已經(jīng)開(kāi)辟好,與輸入字符串等長(zhǎng);

【注意】只需要完成該函數(shù)功能算法,中間不需要有任何IO的輸入輸出

示例
輸入:“cccddecc” 輸出:“3c2de2c”
輸入:“adef” 輸出:“adef”
輸入:“pppppppp” 輸出:“8p”

復(fù)制代碼 代碼如下:

public class Test {

  

 static void stringFilter( char InputStr[], long len, char OutputStr[]){
  int[] a= new int[26];
  int num=0;
  int j=0;//OutputStr[]計(jì)數(shù)
  for(int i=0;i<len;i++){
   num = InputStr[i]-'a';
   if(a[num]==0){//沒(méi)出現(xiàn)過(guò)
    OutputStr[j]=InputStr[i];
    j++;
    a[num]=1;
   }
  }
 }

 static void stringZip( char InputStr[], long len, char OutputStr[]){
  char temp=' ';
  int num=1;
  int point=0;
  for(int i=0;i<len;i++){
   if(InputStr[i]==temp){
    num++;
   }else{
    if(num!=1){
     OutputStr[point++]=(char)(num+'0');
     num=1;
    }    
    OutputStr[point++]=temp;
    temp=InputStr[i];
   }
  }  
 }

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  char [] test={'a','a','a','c','b','b','b','a','a','c','a','d','d','d','c','d','e'};
  long len=test.length;
  char [] res = new char[(int) len];
  stringFilter(test,len,res);
  int j=res.length;
  for(int i=0;i<j;i++){
   if(res[i]!='\0'){
    System.out.print(res[i]);
   }else
    break;   
  }

  char[] res2=new char[(int) (2*len)];
  stringZip(test,len,res2);
  for(int i=0;i<2*len;i++){
   if(res2[i]!='\0'){
    System.out.print(res2[i]);
   }else
    break;
  }
 }
}

相關(guān)文章

最新評(píng)論