矢印は左回転文字列の提供を指し、

タイトル説明

左ローテート(ROL)と呼ばれるアセンブリ言語命令のシフトがあり、現在は簡単な作業であり、この命令は、文字列操作の結果によってシミュレートされます。指定された文字列Sの場合、あなたはKビットのシリアル出力した後、その左の円を入れました。例えば、文字列S =「abcXYZdef」は、三つ、即ち「XYZdefabc」後に必要な出力結果を左回転させました。それは単純ではないですか?OK、それを得ます!
1つのアイデア:部分文字列Stringクラス()メソッド撤回ストリングの使用
String substring(int beginIndex, int endIndex)
これは、この文字列の子である文字列を返します。 
   APIの連結を使用して、Stringクラス()文字列の連結を実装
String concat(String str)
指定された文字列は、文字列の端部に接続されています。
コード:
パブリッククラスのソリューション{ 
    パブリック文字列LeftRotateString(文字列str、int型N){ 
        IF(STR == NULL || str.length()== 0 || N <0 || N> str.length()){ 
            戻りSTR。
        } 
        、N%= str.length()。
        文字列STR1 = str.substring(0、N); 
        文字列STR2 = str.substring(N、str.length())。
        str2.concat(STR1)を返します。
    } 
}

  2つのアイデア:

*フロントの1.最初の半分は反転
* 2。後半は再び逆転される
* 3。そして、文字列全体フリップ
*
文字列が反転した柔軟なデータベースを使用していません:*テストサイト

パブリッククラスのソリューション{ 
    パブリック文字列LeftRotateString(文字列str、int型N){ 
        IF(STR == NULL || str.length()== 0 || N <0 || N> str.length()){ 
            戻りSTR。
        } 
        のchar [] CH = str.toCharArray()。
        reverseString(CH、O、N -1)。
        reverseString(CH、N、str.length() - 1)。
        reverseString(CH、0、str.length() - 1)。
        新しいString(CH)を返します。
    } 
    公共ボイドreverseString(CHAR [] CH、INT開始、INT端){ 
        {(<エンド開始)しながら
            チャーTEMP = CH [開始]。
            CH [開始] = CH [END]。
            CH [END] = TEMP。
            開始= 1 +始めます。
            エンド=エンド- 1。
        } 
    } 
}

  17ms:実行時間

  メモリを取る:9668kを

おすすめ

転載: www.cnblogs.com/maohaitao/p/11286637.html
おすすめ