- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
谁能解释这个前缀和计算是如何工作的,因为我很困惑我的意思是我知道它创建了一个带有字母前缀和的 Ints 数组,但我不明白如何?有人可以发布更天真的逻辑或一些解释吗?或者可能是该 MAP 函数的较短版本,因为它非常复杂。
Link挑战以防万一有人想看一下
public func solution(_ S : inout String, _ P : inout [Int], _ Q : inout [Int]) -> [Int] {
//The mapping below needs the explanation
var prefixSumA = S.map({ () -> (Character) -> Int in
var s = 0; return {
if $0 == "A" {
return (s += 1, s).1
}
return s
}
}())//until here
prefixSumA.insert(0, at: 0)
var prefixSumC = S.map({ () -> (Character) -> Int in
var s = 0; return {
if $0 == "C" {
return (s += 1, s).1
}
return s
}
}())
prefixSumC.insert(0, at: 0)
var prefixSumG = S.map({ () -> (Character) -> Int in
var s = 0; return {
if $0 == "G" {
return (s += 1, s).1
}
return s
}
}())
prefixSumG.insert(0, at: 0)
let iterations = min(P.count, Q.count)
var result = [Int]()
for i in 0...iterations - 1 {
let p = P[i]
let q = Q[i] + 1
if prefixSumA[q] - prefixSumA[p] > 0 {
result.append(1)
} else if prefixSumC[q] - prefixSumC[p] > 0 {
result.append(2)
} else if prefixSumG[q] - prefixSumG[p] > 0 {
result.append(3)
} else {
result.append(4)
}
}
return result
}
最佳答案
prefixSumA
计算从开始到每个给定索引的 A
的数量。 prefixSumC
和 prefixSumG
也是如此。
例如,如果字符串 S
是 "CAGCCTA"
,我们将有:
prefixSumA = [0, 0, 1, 1, 1, 1, 1, 2]
prefixSumC = [0, 1, 1, 1, 2, 3, 3, 3]
prefixSumG = [0, 0, 0, 1, 1, 1, 1, 1]
(注意开头插入的零。)
这段代码:
var prefixSumA = S.map({ () -> (Character) -> Int in
var s = 0; return {
if $0 == "A" {
return (s += 1, s).1
}
return s
}
}())
prefixSumA.insert(0, at: 0)
返回一个闭包,如果字符是 A
,它将捕获 s
的当前值(这是数组中的最后一个值),递增它,结束返回它 (s
)。
return (s += 1, s).1
是一种奇特的方式,可以写成:
s += 1
return s
整个 block 可以写得更简单:
var prefixSumA = [0]
var countOfA = 0
prefixSumA += S.map { char in
if char == "A" { countOfA += 1 }
return countOfA
}
prefixSumC
和 prefixSumG
也可以这样做。
关于swift - 来自 Codility GenomicRangeQuery in Swift 4.2 的这个前缀 Sum Coding Challenge 的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55160288/
我在 jquery selectors 中进行了搜索一段时间了,但找不到任何解决我的问题的方法。 我有一个由 foreach 归档的 html 表。每行都有几个弹出工具提示的链接。我的问题:找不到正确
我决定采取Eudyptula Challenge . 在我提交了第一个任务之后,它就是构建一个简单的“Hello World!”。模块,我收到了以下答案。 Please read the requir
因此,在安全性非常重要的应用程序的情况下 - 如何实现挑战问题的想法。那就是……你会: 检测电脑IP是否变化,提出挑战题。 检测 cookie 是否丢失。 检测计算机名称是否不同。 上述方法的一些组合
我有一个网络应用程序可以接受匿名和经过身份验证的请求。如果我将表单数据(通过文件上传)匿名发布到 Web 应用程序,然后收到 401 质询,我会在第二次请求时再次重新发送所有表单数据吗? 我并不是要避
我正在尝试解决CTF挑战,其中的目标是猜测生成的数字。由于这个数字很大,而且每个数字只有10次尝试,我认为你不能应用二进制搜索或任何类型的算法来解决它,这与以某种方式获得随机函数的种子并能够生成下一个
我正在尝试解决CTF挑战,其中的目标是猜测生成的数字。由于这个数字很大,而且每个数字只有10次尝试,我认为你不能应用二进制搜索或任何类型的算法来解决它,这与以某种方式获得随机函数的种子并能够生成下一个
我遇到了与这篇文章中所述相同的问题:“First external login attempt redirects back to login action, second one works” 对他
我在使用 python3 的 CodeFights 上遇到了“areSimilar”问题。 提示指出“如果可以通过交换一个数组中的最多一对元素从另一个数组中获得一个数组,则两个数组被称为相似。 给定两
我正在寻找一种方法将 OpenFeint 的仪表板 View 直接打开到挑战 View 。有一条消息会启动仪表板,还有一条消息会在发送之前显示挑战: [OpenFeint launchDashboar
该命令: $ letsencrypt certonly --manual --preferred-challenges dns --email foo@bar.com --domains test00
Link to Codewars challenge 这是非常基本的,但由于某种原因,我无法弄清楚为什么我无法返回 null当有不是 数组中任何不连续的数字。当数组不完全连续时,我的代码可以正常工作:
ControllerBase类(class)有Challenge方法,返回 ChallengeResult 的对象类(class)。CookieAuthenticationOptions类(class
我一直在努力解决 Hackerrank 上的热身挑战。对于这个特殊的挑战 - https://www.hackerrank.com/challenges/cut-the-sticks - 我已经编写了
我在 Android 应用程序中使用 Volley 从 Misfit API ( http://build.misfit.com ) 获取数据。我尝试构建一个间歇性 Activity ,在有人登录后从
我的代码有效,但未被接受以通过挑战。对于我做错的任何帮助,我们将不胜感激。 挑战说明: 给定一个整数数组。返回一个数组,其中第一个元素是正数的计数,第二个元素是负数的总和。如果输入数组为空或 null
背景 我有一个第三方框架,它对我提供给它的 URL 进行一些网络请求。请求的格式为: https://10.0.2.2:8000/api/ .... 由于架构是 https,我不断收到来自第三方库的错
我已经完全按照许多教程将 GameCenter 集成到我的应用程序中。我正在使用正确的代码来发布分数,并获得分数正在报告给 GC 的报告。但是,当我尝试加载排行榜时,它显示的是“无挑战”空白屏幕。 我
有人可以告诉我为什么 FCC 不接受我的解决方案,即使它通过了所有测试? 下面是挑战的链接,但我将在此处发布问题和测试,以更好地遵守社区。 FCC 挑战: https://www.freecodeca
我正在关注this java 中的小例子,用于测试 JRadius 客户端。但我不断收到此错误: Exception in thread "main" net.sf.jradius.exception
我在我的项目中使用 google reCAPTCHA 版本 2。它工作正常。但是当我选中复选框时,它总是显示一组图像作为挑战。但我只想显示字母而不是图像。我该怎么做? 最佳答案 据我所知,目前还没有这
我是一名优秀的程序员,十分优秀!