タイトル説明
左ローテート(ROL)と呼ばれるアセンブリ言語命令のシフトがあり、現在は簡単な作業であり、この命令は、文字列操作の結果によってシミュレートされます。指定された文字列Sの場合、あなたはKビットのシリアル出力した後、その左の円を入れました。例えば、文字列S =「abcXYZdef」は、三つ、即ち「XYZdefabc」後に必要な出力結果を左回転させました。それは単純ではないですか?OK、それを得ます!
ソリューション:
最後にフリップ:
左側の部分とフリップの右側の部分を反転し、全体の缶を反転。
1 クラスSolution02 { 2 公共: 3 列 LeftRotateString(文字列 strの、int型N){ 4 int型のサイズ= str.length()。 5 あれば(サイズ< 2 || N%サイズ== 0)戻りSTR。 6 = N%サイズ。 7 リバース(STR、0、N - 1 )。 8 リバース(STR、N、サイズ- 1 )。 9 リバース(STR、0、サイズ- 1); 10 リターンSTR。 11 } 12 プライベート: 13 ボイドリバース(文字列&STR、INTを L、INT R) 14 { 15 ながら(L < R){ 16 スワップ(STR [L]、STR [R])。 17 ++ L、 - R。 18 } 19 } 20 }。