私はHackerRankのテストケースサンプルを実行してインタビューをコーディングするために自分自身を準備しようとしています。このプロセスに精通している場合は、通常、さまざまな行の文字列を持つ標準入力を受け取り、その質問が何を求めているかに基づいて情報を抽出します。私はn
の整数を空白で区切った線(例:1 2 3 4 5
)をあなたに与えるという多数の質問に出くわしました。この問題を解決するには、String
からInt
([Int]
)の配列を外挿する必要があります。その後、私はコピー...Swift String API HackerRankの代わりに
func extractIntegers(_ s: String) -> [Int] {
let splits = s.characters.split { [" "].contains(String($0)) }
return splits.map { Int(String($0).trimmingCharacters(in: .whitespaces))! }
}
だから私は私の遊び場でそれをコーディングし、それは素晴らしい作品、私も私が作る複数のテストケースを実行し、それらはすべてが見事に合格:私は、この気の利いた方法を思い付きましたHackerRankのコードを実行して提出してください。そして、私はこれを手に入れます:
solution.swift:16:29: error: value of type 'String' has no member 'trimmingCharacters'
return splits.map { Int(String($0).trimmingCharacters(in: .whitespaces))! }
だから、おそらくHRはSwift 3のすべてを更新していないかもしれません。大きな問題ではない!私はよりクリーンなソリューションのアイデアを持っています!ここでは、次のとおりです。もちろん
func extractIntegers(_ s: String) -> [Int] {
return s.components(separatedBy: " ").map { Int($0)! }
}
.... AAAAANDDD:だから今、私は私がすべての文字をループ、スペースをチェックし、本当にずさんな方法を使用するように強制してい
solution.swift:15:12: error: value of type 'String' has no member 'components'
return s.components(separatedBy: " ").map { Int($0)! }
、スペースの間の範囲から配列に部分文字列を追加し、その配列をマップして返します。
誰でもSwiftのHRの不十分さを回避するための他のクリーンなアイデアはありますか?私が得ることができるどんな勧告も欲しいです!
ありがとうございます!
これは変です。私はHRの両方の機能を試してみましたが、どちらも期待通りに機能しました。 - Btw、あなたの質問には実際の問題とは無関係のテキストがたくさんありますが、それを削除することをお勧めします。 –
@MartinR - 真剣に彼らはあなたのために働いていますか?あなたのために働く可能性がありますが、私はできません。 – Pierce
あなたはおそらく '輸入財団' –