如何将字符串的偶数索引和奇数索引字符作为 2 个空格分隔的字符串打印在一行上?

问题描述 投票:0回答:4

给定一个长度为 N 的字符串 S,索引从 0 到 N-1,将其偶数索引字符和奇数索引字符作为 2 个空格分隔的字符串打印在一行上。

样本输入

2

Hacker

Rank

样本输出

Hce akr

Rn ak

我在 VScode 中尝试过并成功了,但是当我在 HackerRank 中提交它时,他们给我这样的输出

2Hce

ak 

akrRn

涉及数字 (2),但我不知道如何处理它。这是代码

function processData(input) {

  let strToArr = input.split('');
  let evenArr = [];
  let oddArr = [];
      for (let i = 0; i < strToArr.length; i++) {
    if (i % 2 === 0) {
      evenArr.push(strToArr[i]);
    } else if(i%2===1){
      oddArr.push(strToArr[i]);
    }
  }
  console.log(evenArr.join('') + ' ' + oddArr.join(''));
}

process.stdin.resume();
process.stdin.setEncoding("ascii");
_input = "";
process.stdin.on("data", function (input) {
    _input += input;
});

process.stdin.on("end", function () {
   processData(_input);
});
javascript arrays
4个回答
0
投票

使用带有分隔符

split()
'\n'
,将子字符串放在换行符中。 并且整数,在这种情况下,可以使用
2
从字符串复制中省略
slice(1)
1
代表切片开始的地方。 使用
forEach()
为每个子字符串执行以下操作:

  1. 创建偶数和奇数变量

  2. for
    循环遍历每个子字符串的每个字符(元素)

  3. if语句检查索引(

    i
    )是偶数还是奇数

  4. 如果是索引

    even
    element
    添加到偶数字符串

  5. else 添加到

    odd
    string

    function processData(input){
    //Enter your code here
    //split() input str into new line and exctract(omitting the integer)
    let strCopy = input.split("\n").slice(1);
    //forEach element of the split input
    strCopy.forEach(element => {
     let even = "",
     let odd = "";
     //loop through to find the even and odd 
     for(let i = 0; i < element.length; i++){
      if(i % 2 === 0){
       even += element[i];
      }else {
       odd += element[i];
      }
     }
     console.log(`${even} ${odd}`);
    });
    }
    

0
投票

第 6 天让我们回顾一下 Hackerrank 解决方案 | 30 天编程:C#

int T=Convert.ToInt32(Console.ReadLine());
        string[] str=new string[T];
        for(int i=0;i<str.Length;++i)
        {
            str[i]=Console.ReadLine();
        } 
     string odd="",even="";
    for(int i=0;i<str.Length;++i)
        {
         char[] ch=str[i].ToCharArray();
         for(int k=0;k<ch.Length;++k)
         {
             if(k%2==0)
             even+=ch[k];
             else
             odd+=ch[k];
             
         }    
         Console.WriteLine(even+" "+odd);
         even="";
         odd="";
        
        }

0
投票
Index Shuffle
function indexShuf(str) {
    let newstr = str.split('');
    let newarry =[];
    let newarry1 =[];
    //return newstr;
    for(i=0 ; i<newstr.length; i++) {
        if(i % 2 === 0) {
            newarry.push(newstr[i])
        }else {
            newarry1.push(newstr[i])
        }
    }return newarry.concat(newarry1).join('')
}
console.log(indexShuf("mayvcvcbe"))

0
投票

第 6 天让我们回顾一下 Hackerrank 解决方案 | 30 天编程:Java

public static void main(String[] args) {
  
    Scanner scanner = new Scanner(System.in);
    int N= scanner.nextInt();
    scanner.nextLine();
    
    for(int j=0; j<N;j++) {
        String S = scanner.next();
       
        char[] arr= S.toCharArray();
        String odd="";
        String even="";
        for(int i=0; i<arr.length;i++)
        { 
            if(i%2==0)
            {
                even+=arr[i];
            }
            else
            {
                odd+=arr[i];
            }
       }
       System.out.println(even + " " + odd);
    }
    scanner.close();
}
© www.soinside.com 2019 - 2024. All rights reserved.