文字列内の単語を逆にします(leetcode 4.10は毎日パンチします)

文字列が与えられると、文字列内の各単語を1つずつフリップします。
 
例1:
输入:「空は青です」
输出:「青は空です」

例2:
入力:「hello world!」
出力:「world!Hello」
説明:入力ストリングの前後に余分なスペースを含めることができますが、反転した文字を含めることはできません。

例3:
入力:「良い例」
出力:「 良い例a」
説明:2つの単語の間に余分なスペースがある場合は、反転した単語間のスペースを1つに減らします。

 
説明:

 スペースのない文字は単語を形成します。
 入力文字列には前後に余分なスペースを含めることができますが、反転した文字を含めることはできません。
 2つの単語の間に余分なスペースがある場合は、反転後の単語間のスペースを1つだけに減らします。
 
アイデア:最初に頭と尾および囲まれたスペースを削除し、次に単語配列を使用して各単語を記録し、次に逆の順序でsに入力します。
学習:オンラインojはプログラム全体を1回実行するためのテストサンプルではないため、グローバル変数は1回クリアする必要があります。
1  文字の DealS [ 10000 ] = { 0 };
2  文字の単語[ 10000 ] = { 0 };
3  
4  char * reverseWords(char * s)
 5  {
 6      int temBegin;
7      int temEnd;
8      int k = -1、l = -1 ;
9      int len = strlen(s);
10      memset()
 11      for(temBegin = 0 ; temBegin <strlen(s); temBegin ++)  // 先頭のスペースを削除
12      {
 13          if(s [temBegin]!= '  ' 14              break ;
 15      }
 16  
17      for(temEnd = strlen(s)-1 ; temEnd> = 0 ; temEnd--)   // 削除終了スペース
18      {
 19          if(s [temEnd]!= '  ' 20              break ;
 21      }
 22      forint i = temBegin; i <temEnd + 1 ; i ++)// 途中のスペースを削除
23     {
 24          if(s [i]!= '  ' 25          {
 26              dealS [++ k] = s [i];
 27          }
 28          else  if(s [i] == '  ' 29          {
 30              if(s [ i + 1 ] == '  '// 連続スペース
31                  継続;
 32さ             もなくば
33                  取引[++ k] = '  ' ;
 34          }
 35      }
 36     
37      k = -1 ;
38      memset(s、0、len);  // 清空S 
39      のためにINT I = STRLEN(チェック!) - 1 ; I> = 0 ; i-- 40      {
 41          ながら(チェック![I] =!'  ' && I =! - 1 42          {
 43              ワード[++ l] = dealS [i];
44              i-- ;
45          }
 46          
47          forint j = l; j> = 0; j-- 48          {
 49              s [++ k] = word [j];
 50          }
 51          if(i!= 0// 最後でない場合
52          {
 53              s [++ k] = '  ' ;
 54          }
 55          memset(word、0、l + 1); // 空の単語
56          l = -1 ;
 57      }
 58      s [k] = ' \ 0 ' ;
 59      returns;
60 }

 

 

 
 

おすすめ

転載: www.cnblogs.com/ZhengLijie/p/12672521.html