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

字符串壓縮問題——程序員解法

編輯:關於C語言

給定一個字符串,僅由a,b,c 3種小寫字母組成。當出現連續兩個不同的字母時,你可以用另外一個字母替換它。
如有ab或ba連續出現,你把它們替換為字母c;
有ac或ca連續出現時,你可以把它們替換為字母b;
有bc或cb連續出現時,你可以把它們替換為字母a。
你可以不斷反復按照這個規則進行替換,你的目標是使得最終結果所得到的字符串盡可能短,求最終結果的最短長度。
輸入:字符串。長度不超過200,僅由abc三種小寫字母組成。
輸出:按照上述規則不斷消除替換,所得到的字符串最短的長度。
例如:
輸入cab,輸出2。因為我們可以把它變為bb或者變為cc。         
輸入bcab,輸出1。盡管我們可以把它變為aab -> ac -> b,也可以把它變為bbb,但因為前者長度更短,所以輸出1。









 

 #include <stdio.h>
 
  MAX 200
 
 typedef  String[ MAX +  
  N(x) N_(x)
  N_(x) #x
 
  input(  * unsigned min_len(  * 
  main(       
  
    printf( 
       
 unsigned min_len(  *     
  
  input(  *     puts(    scanf(N(MAX)    puts(  }

 

 len = strlen( s );

reduce( newstr , s , i1 );

 newlen ;

newlen = min_len( newstr );

          ( newlen <=

 unsigned min_len(  *      len =     i =      ( s[i] !=  && s[i+] !=          ( s[i] != s[i+             
           newlen =           ( newlen <              len =         i ++      }

 #include <stdio.h>
 #include <.h>
 
  MAX 200
 
 typedef  String[ MAX +  
  N(x) N_(x)
  N_(x) #x
 
  input(  * unsigned min_len(  *  reduce(  * ,  *  turn (  ,  
  main(       
  
    printf(    
       
  turn (  c1 ,       + +  - c1 -   
  reduce(  * st ,  *      st[i] = turn ( ss[i] , ss[i+    strcpy( st + i +  , ss + i +   
 unsigned min_len(  *      len =     i =      ( s[i] !=  && s[i+] !=          ( s[i] != s[i+             
           newlen =          
           ( newlen <             len =        i ++       
  input(  *     puts(    scanf(N(MAX)    
    puts(  }


 

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