程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java完成緊縮字符串和java字符串過濾

java完成緊縮字符串和java字符串過濾

編輯:關於JAVA

java完成緊縮字符串和java字符串過濾。本站提示廣大學習愛好者:(java完成緊縮字符串和java字符串過濾)文章只能為提供參考,不一定能成為您想要的結果。以下是java完成緊縮字符串和java字符串過濾正文


標題一:經由過程鍵盤輸出一串小寫字母(a~z)構成的字符串。

請編寫一個字符串過濾法式,若字符串中湧現多個雷同的字符,將非初次湧現的字符過濾失落。
好比字符串“abacacde”過濾成果為“abcde”。

請求完成函數:

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

【輸出】 pInputStr:輸出字符串
lInputLen:輸出字符串長度
【輸入】 pOutputStr: 輸入字符串,空間曾經開拓好,與輸出字符串等長;

【留意】只須要完成該函數功效算法,中央不須要有任何IO的輸出輸入

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

main函數曾經隱蔽,這裡保存給用戶的測試進口,在這裡測試你的完成函數,可以挪用printf打印輸入
以後你可使用其他辦法測試,只需包管終究法式能准確履行便可,該函數完成可以隨意率性修正,
然則不要轉變函數原型。必定要包管編譯運轉不受影響。

題二:標題描寫:

經由過程鍵盤輸出一串小寫字母(a~z)構成的字符串。請編寫一個字符串緊縮法式,將字符串中持續列席的反復字母停止緊縮,並輸入緊縮後的字符串。

緊縮規矩:
1. 僅緊縮持續反復湧現的字符。好比字符串"abcbc"因為無持續反復字符,緊縮後的字符串照樣"abcbc".
2. 緊縮字段的格局為"字符反復的次數+字符"。例如:字符串"xxxyyyyyyz"緊縮後就成為"3x6yz"

請求完成函數:

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

【輸出】 pInputStr:輸出字符串
lInputLen:輸出字符串長度
【輸入】 pOutputStr: 輸入字符串,空間曾經開拓好,與輸出字符串等長;

【留意】只須要完成該函數功效算法,中央不須要有任何IO的輸出輸入

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


public class Test {

  

 static void stringFilter( char InputStr[], long len, char OutputStr[]){
  int[] a= new int[26];
  int num=0;
  int j=0;//OutputStr[]計數
  for(int i=0;i<len;i++){
   num = InputStr[i]-'a';
   if(a[num]==0){//沒湧現過
    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;
  }
 }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved