swift - 在循环内初始化后如何在循环外使用变量?
问题描述
想要编写一个函数,该函数将接受一个名为 straar 的字符串数组和一个名为 k 的整数。它将返回合并在一起的 k 倍最长的字符串。
代码:
import UIKit
func longestConsec( strarr: [String], k: Int) -> String {
var strerr : [String] = Array()
strerr = strarr
var longest : Int
longest = 0
var longestString : String
var finalBoss : String
finalBoss = ""
for v in 1...k{
for long in strerr{
if (long.count > longest){
longest = long.count
longestString = long
}
}
finalBoss += longestString
for lang in 0...strerr.count{
if (strerr[lang] == longestString){
strerr.remove(at:lang)
}
}
}
return finalBoss
}
解决方案
代码有一些问题。var 'longestString' 需要在使用前进行初始化。并且在最后一个 for 循环中失败,因为索引比项目数多。这是带有一些更正的代码。
func longestConsec( strarr: [String], k: Int) -> String {
var strerr = strarr
var longest : Int
longest = 0
var longestString : String = ""
var finalBoss : String
finalBoss = ""
for _ in 1...k {
for long in strerr {
if (long.count > longest) {
longest = long.count
longestString = long
}
}
finalBoss += longestString
for lang in 1 ..< strerr.count {
if (strerr[lang] == longestString) {
strerr.remove(at:lang)
}
}
}
print("finalBoss: \(finalBoss)")
return finalBoss
}
最长的Consec(strarr:[“十一”,“二”,“三”],k:3)
推荐阅读
- java - 获取注解泛型方法参数
- node.js - AWS Lambda 的 SQL Server 数据库访问问题
- verilog - Verilog inout 端口分配导致 X
- python - pyqtgraph 图像点选择
- reactjs - 当用户单击 React js 中的图像或 [] 图标时,如何在全屏中预览 swiper 幻灯片?
- json - 如何使用 JSON 请求 API 发送 Solr 空间查询
- javascript - 活动时将元素移动到视口
- r - 如何根据传递给 R 中函数的参数值重新评估因子中的元素?
- data-structures - 如何在数据库中使用归并排序算法
- sql - Get customer name from table in PostgreSQL