【发布时间】:2019-08-06 10:07:55
【问题描述】:
给定一个任意长度的字符串。我需要找到 1 个连续的相同字符的子序列。
我的函数(其中有两个,但它们是同一个函数的两个部分)结果变得复杂而繁琐,因此不适合。我需要的函数应该很简单,不要太长。
示例:
Input : str = "abcabc"
Output : abc
Input : str = "aa"
Output : a
Input : str = "abcbabcb"
Output : abcb
Input : str = "abcbca"
Output : bcbc
Input : str = "cbabc"
Output :
Input : str = "acbabc"
Output :
我不成功的功能:
func findRepetition(_ p: String) -> [String:Int] {
var repDict: [String:Int] = [:]
var p = p
while p.count != 0 {
for i in 0...p.count-1 {
repDict[String(Array(p)[0..<i]), default: 0] += 1
}
p = String(p.dropFirst())
}
return repDict
}
var correctWords = [String]()
var wrongWords = [String]()
func getRepeats(_ p: String) -> Bool {
let p = p
var a = findRepetition(p)
for i in a {
var substring = String(Array(repeating: i.key, count: 2).joined())
if p.contains(substring) {
wrongWords.append(p)
return false
}
}
correctWords.append(p)
return true
}
非常感谢您的帮助!
【问题讨论】:
-
在第四个例子“abcbca”中,输出不应该是“bc”吗?
标签: swift function subsequence