给定一个长度为 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);
});
使用带有分隔符
split()
的'\n'
,将子字符串放在换行符中。
并且整数,在这种情况下,可以使用2
从字符串复制中省略slice(1)
,1
代表切片开始的地方。
使用 forEach()
为每个子字符串执行以下操作:
创建偶数和奇数变量
for
循环遍历每个子字符串的每个字符(元素)
if语句检查索引(
i
)是偶数还是奇数
如果是索引
even
将element
添加到偶数字符串
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}`);
});
}
第 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="";
}
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"))
第 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();
}