我正试图提交HackerRank Day 6 Challenge长达30天的代码。
我可以在Xcode的操场上毫无问题地完成这项任务,但是hackrank的网站说我的方法没有输出。我昨天遇到了一个问题,因为浏览器薄片,但清理缓存,从Safari切换到Chrome等,似乎无法解决我在这里遇到的问题。我想我的问题在于。
任务
给定一个长度为n、索引为0到n-1的字符串s,将其偶数索引字符和奇数索引字符作为2个空格分隔的字符串打印在一行上(有关详细信息,请参阅下面的示例)。
输入格式
第一行包含一个整数(测试用例的数量)。
后面每行包含一个字符串,。
约束
12输出格式
对于每个字符串(其中0这是我提交的代码:
import Foundation
let inputString = readLine()!
func tweakString(string: String) {
// split string into an array of lines based on char set
var lineArray = string.components(separatedBy: .newlines)
// extract the number of test cases
let testCases = Int(lineArray[0])
// remove the first line containing the number of unit tests
lineArray.remove(at: 0)
/*
Satisfy constraints specified in the task
*/
guard lineArray.count >= 1 && lineArray.count <= 10 && testCases == lineArray.count else { return }
for line in lineArray {
switch line.characters.count {
// to match constraint specified in the task
case 2...10000:
let characterArray = Array(line.characters)
let evenCharacters = characterArray.enumerated().filter({$0.0 % 2 == 0}).map({$0.1})
let oddCharacters = characterArray.enumerated().filter({$0.0 % 2 == 1}).map({$0.1})
print(String(evenCharacters) + " " + String(oddCharacters))
default:
break
}
}
}
tweakString(string: inputString)
我认为我的问题在于。我将按原样处理,并在方法中对其进行格式化。我已经找到了第6天的解决方案,但我似乎找不到任何当前的快速解决方案。
谢谢你的阅读。我欢迎关于如何让这件事过去的想法。
最佳答案
readLine()
从标准输入读取一行,其中
意味着您的inputString
只包含
输入数据。你必须循环调用readLine()
才能得到
其余的输入数据。
所以你的程序可能是这样的:
func tweakString(string: String) -> String {
// For a single input string, compute the output string according to the challenge rules ...
return result
}
let N = Int(readLine()!)! // Number of test cases
// For each test case:
for _ in 1...N {
let input = readLine()!
let output = tweakString(string: input)
print(output)
}
(此处可接受强制展开,因为
输入数据记录在质询描述中。)
关于swift - 难以让readLine()在HackerRank上按需运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42025437/