右右

2017-06-29 11 views
0

Aに文字nは位置の所与のアレイを回転させる)方法の本体右右

空隙rightRotate(CHAR [] ARR、INT n)が

方法が正しい文字Nの所与のアレイを回転させるの開発は右から左へ

たとえば、arr = {'a'、 'b'、 'c'、 'd'、 'e'}およびn = 2の場合、結果はarr = {'d'、 'e 」、 ''、 'B'、 'C​​'}

B)メソッドの本体を開発

空隙leftRotate(CHAR [] ARR、INT n)が

方法の左側は、所定の回転たとえば、arr = {'a'、 'b'、 'c'、 'd'、 'e'}の場合、結果はarr = {'c'}でなければなりません。 、 'd'、 'e'、 'a'、 'b'}


私はJavaを1ヶ月しか学習していませんでしたが、今週はクイズです。

先生は私たちにtempとbasic forループを使用して解決するようにお願いします。

と新しい配列を使用することはできません。


public static void rightRotate(char arr[], int n) 
{ 
    // Your code goes here 
    int i; 
    if(arr.length>1) 
    { 
    char p=arr[arr.length-n-1]; 
    for(i=0;i<n;i++) 
    { 
     char m= arr[arr.length-n+i]; 
     arr[arr.length-n-1+i]=arr[i]; 
     arr[i]=m; 
    } 
    arr[arr.length-1]=p; 
} 
} 

これは私が右回転のために書いたものです。しかし、私は左回転図を描くことはできません。


と私のコードは、テストケースのバグを有する4

テスト・ケース1: 配列:
ABCDEは右回転:deabc

テスト・ケース2: 配列:
ABCDEFGを 右回転:defgabc

テストケース3: 配列:ab
右回転:

テストケース4 B: 配列:B、CのDのE F GがHのI jのk個のL個のM nは
右回転:HのI jのk個のL個のM N BはC dがE G F


どのように権利を向上させることができるのいずれかを回転させますか?私は左回転のために何をすべきですか?

おかげ

+1

あなたが試みたことを示し、発生している特定の問題(もしあれば)を説明してください。一度それをすると、ここで非常に賢い人々の束は、その問題を解決するのを助けてくれるでしょう。スタックオーバーフローは、あなたの宿題をするのではなく、特定の問題を解決するのに役立ちます。 – Jason

+0

デバッグを試しましたか? – shmosel

+0

デバッグとは何ですか?私たちはデバッグを学んだことはありません。 – Jerrick

答えて

0

あなたが実際には1つの要素をシフトするために回転数と1を維持するために、回転を実行するために2つのforのループが必要になります。以下が動作するはずです: