当前位置: 首页 > 知识库问答 >
问题:

right 将给定的字符数组 n 位置向右旋转

伍光济
2023-03-14

a)制定方法体系

void rightRotate (char [] arr, int n)

方法将给定的字符数组向右旋转n个位置。

例如,如果 arr = {'a', 'b', 'c', 'd', 'e' }, 和 n=2,则结果应为 arr={'d', 'e', 'a', 'b', 'c'}

b)开发方法主体

void leftRotate (char [] arr, int n)

该方法将给定的字符数组向左旋转n个位置。。

例如,如果arr = {'a ',' b ',' c ',' d ',' e'}那么结果应该是arr={'c ',' d ',' e ',' a ',' b'}

我只学了一个月java,这是这周的小测验。

老师要求我们只使用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: 数组: a b c d e
右旋转 : d e a b c

测试用例2:数组:a b c d e f g
右旋转:d e f f g a b c

测试用例3:数组:a b
右旋转:b a

测试用例4:数组:a b c d e f g h i j k l m n
右旋转:h i j k l m n b c d e f a g

如何改进右旋转一个?对于左旋转的那个,我应该怎么做?

谢谢

共有1个答案

元望
2023-03-14

实际上需要两个<code>循环来执行旋转,一个用于保持旋转次数,另一个用于移动元素。以下内容应该有效:

public static void rightRotate(char arr[], int n) {
    int i;
    if (arr.length > 1) {
        for (i = 0; i < n; i++) {
            char p = arr[arr.length - 1];
            //Shift the elements to the right
            for(int j = arr.length-2; j >= 0 ; j--){
                arr[j+1] = arr[j];
            }
            arr[0] = p;
        }
    }
}
 类似资料:
  • 描述 (Description) 它提供移动或导致围绕轴或中心的圆圈移动。 语法 (Syntax) @keyframes rotateOutUpRight { 0% { transform-origin: right bottom; transform: rotate(0); opacity: 1; } 100% { transfo

  • 描述 (Description) 它提供移动或导致围绕轴或中心的圆圈移动。 语法 (Syntax) @keyframes rotateOutDownRight { 0% { transform-origin: right bottom; transform: rotate(0); opacity: 1; } 100% { tran

  • 描述 (Description) 它提供移动或导致围绕轴或中心的圆圈移动。 语法 (Syntax) @keyframes rotateInUpRight { 0% { transform-origin: right bottom; transform: rotate(-90deg); opacity: 0; } 100% {

  • 描述 (Description) 它提供移动或导致围绕轴或中心的圆圈移动。 语法 (Syntax) @keyframes rotateInDownRight { 0% { transform-origin: right bottom; transform: rotate(90deg); opacity: 0; } 100% { tr

  • 本文向大家介绍Java程序将数组反转到给定位置,包括了Java程序将数组反转到给定位置的使用技巧和注意事项,需要的朋友参考一下 数组可以反转到给定位置pos,其余数组不变。一个例子如下: 演示此的程序如下所示- 示例 输出结果 现在让我们了解上面的程序。 如果位置大于数组的长度,则这是一个错误并被打印。否则,首先打印原始数组。证明这一点的代码片段如下所示- 现在,使用for循环将数组反转到pos。

  • 本文向大家介绍VBA 使用Right或Right $获取字符串中最右边的3个字符,包括了VBA 使用Right或Right $获取字符串中最右边的3个字符的使用技巧和注意事项,需要的朋友参考一下 示例