首页 > 解决方案 > 在循环内初始化后如何在循环外使用变量?

问题描述

想要编写一个函数,该函数将接受一个名为 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
}

标签: swiftloopsinitializationswift4

解决方案


代码有一些问题。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)


推荐阅读