文字列の左回転操作は、文字列の前の数文字を文字列の最後まで転送することです。弦の左回転の機能を実現する関数を定義してください。たとえば、文字列「abcdefg」と数値2を入力すると、関数は2ビット左に回転して得られた結果「cdefgab」を返します。

1.文字列の左回転は、文字列の前のいくつかの文字を文字列の終わりまで転送することです。弦の左回転の機能を実現する関数を定義してください。たとえば、文字列 "abcdefg"と数値2を入力すると、関数は2ビット左に回転して得られた結果 "cdefgab"を返します。

例1:

入力:s = "abcdefg"、k = 2
出力: "cdefgab"
例2:

入力:s = "lrloseumgh"、k = 6
出力: "umghlrlose"
2.コード表示

void Swap(char *pa,char *pb)
{
   char tmp = *pb;
    *pb =*pa;
    *pa = tmp;
}
 void Reverse(char* s,int begin,int end)
 {
     while(begin<end)
     {
         Swap(&s[begin],&s[end]);
         ++begin;
         --end;
     }
 }
char* reverseLeftWords(char* s, int n)
{
    int len = strlen(s);
    Reverse(s,0,n-1);
    Reverse(s,n,len-1);
    Reverse(s,0,len-1);
    return s;
}

3.問題解決のアイデア問題
は、3回めにして解決できます。Strlenはデータ長として計算されます。アクセス時には-1に注意してください。そうでない場合、\ 0を途中で交換すると、不完全な文字列になります。

公開された84元の記事 ウォンの賞賛6 ビュー4725

おすすめ

転載: blog.csdn.net/qq_41152046/article/details/105500780