- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
它被赋予一个字符串数组。字符串具有相同的长度。假设输入数组是 (["ababc", "abbba", "aaabb", "bcccb", "acbbb", "aaabb"]).
a b a b c
a b b b a
a a a b b
b c c c b
a c b b b
a a a b b
问题是关于找到最小的字母连接组,可以垂直和水平地绘制同一个字母,但不能沿对 Angular 线绘制。对于此示例,字母“a”有 4 个组(两个单组,两个多组),字母“b”分为 2 组(一个单一的,一个多重的)和字母“c”的 2 个组(一个单一的,一个多重的)。所以,输出应该是“8”。我找不到使用 JavaScript 的解决方案。
我试图将其视为单独的行和列。此外,为每个字符创建数组并单独分析。但它们都无法正常工作。
function strokesRequired(picture){
let total = picture.join('');
let strLength = picture[0].length;
let counter = 0;
for(let i = 0; i < total.length; i++){
if(total[i] !== total[i+1] || total[i] !== total[i+strLength] || total[i] !== total[i-1] || total[i] !== total[i-strLength]){
continue;
}
else {
counter++;
}
}
return counter;
}
对于这个问题,我的代码返回 4,但应该返回 8。因为我只是计算字母,没有任何水平和垂直匹配。
最佳答案
这是从每个未访问过的单元格运行深度优先搜索的一种方法。我认为这也可以通过泛洪填充来解决,即在显示连接时合并组件标签。
function f(M){
let m = M.length
let n = M[0].length
let visited = new Array(m)
for (let i=0; i<m; i++)
visited[i] = new Array(n).fill(0)
function getNeighbours(y, x){
let c = M[y][x]
let neighbours = []
if (y > 0 && !visited[y-1][x] && M[y-1][x] == c)
neighbours.push([y-1, x])
if (y < m - 1 && !visited[y+1][x] && M[y+1][x] == c)
neighbours.push([y+1, x])
if (x > 0 && !visited[y][x-1] && M[y][x-1] == c)
neighbours.push([y, x-1])
if (x < n - 1 && !visited[y][x+1] && M[y][x+1] == c)
neighbours.push([y, x+1])
return neighbours
}
function dfs(y, x){
let stack = [[y, x]]
while (stack.length){
let [y, x] = stack.pop()
visited[y][x] = 1
stack.push(...getNeighbours(y, x))
}
}
let count = 0
for (let i=0; i<m; i++){
for (let j=0; j<n; j++){
if (!visited[i][j]){
count++
dfs(i, j)
}
}
}
return count
}
var M = [
"ababc",
"abbba",
"aaabb",
"bcccb",
"acbbb",
"aaabb"
]
console.log(f(M))
关于javascript - 给出给定字符串数组所需的最小笔画的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58235415/
我有一个依赖于包 B 的包 A。当包 A 中的代码运行并访问包 B 中的类时,包 B 的状态将被解析 (4),而不是 Activity (32) 和包 B 的激活器也没跑好。我认为 bundle B
这个问题在这里已经有了答案: How to remove the space between inline/inline-block elements? (41 个回答) 关闭 7 年前。
我正在尝试使用 Java OpenAL 库。我在导入名为 libsoft_oal.so 的 native 库时遇到问题。 Java OpenAL 依赖于 OpenAL 软实现。我尝试根据他们在 git
我正在尝试启动我的应用程序。是一个 unicorn +工头+sinatra的应用。 这是我的 config.ru 文件: require "rubygems" require "sinatra" Bu
我有一个下拉列表,其中包含一些从数据库表中检索的值,我想要的是当单击按钮时它应该只获得选项标签的中间值,但只有那些类名为“get_this”的选项标签并离开那些选项,如果他们没有这个类 预期输出:值
我有一个index.php文件,需要一个通用的head.php文件,head.php文件中有几个Javascript文件,当这样尝试时,代码在源代码中看起来很好,但文件却不是实际上对文档做任何事情。
有人能帮帮我吗? 我已经像这样运行了 imsmod: $ insmod /data/mm/mmdev.ko epoll_rate=100 但是我得到一个错误: insmod: init_module
是否有键盘快捷键或插件可以在 Notepad++ 中打开 PHP 所需或包含的文件?我知道,在 Dreamweaver 中,执行此操作的命令是 Ctrl+D,但我似乎无法在 Notepad++ 中找到
我已经用 js 设置了一个显示/隐藏 div,但我很难弄清楚如何一次显示一个 div。目前发生的情况是,除非我再次单击原始链接来关闭该 div,否则每个 div 都会显示。 http://www.li
当我尝试将未分配的辅助分片分配给节点时出现错误。 { "error": { "root_cause": [ { "type": "remote_transpor
我正在构建一个 C++ 应用程序,使用 Netbeans 6.9 作为我的 IDE。我有一个 C++ 库,它是一个纯 C 库的包装器。 我已将文件正确添加到项目中(使用添加库文件选项)。这是 g++
我是一名优秀的程序员,十分优秀!