国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java實現壓縮字符串和java字符串過濾

2019-11-26 15:31:34
字體:
來源:轉載
供稿:網友

題目一:通過鍵盤輸入一串小寫字母(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;
  }
 }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 漳州市| 吉水县| 阿克陶县| 沙洋县| 山阴县| 赣州市| 璧山县| 旬邑县| 都昌县| 宽城| 从化市| 耿马| 连云港市| 云浮市| 清原| 同仁县| 孝义市| 红桥区| 晴隆县| 光泽县| 久治县| 平原县| 扎鲁特旗| 太湖县| 洪泽县| 平塘县| 桐梓县| 枞阳县| 固镇县| 曲阳县| 固阳县| 革吉县| 屏边| 托克逊县| 乌苏市| 垦利县| 伊金霍洛旗| 霞浦县| 金阳县| 昌图县| 江川县|