解題思路
使用雙層循環(huán),外層謎面糖赔,內(nèi)層謎底
1战虏、變序:判斷交換順序后是否相同
2拣宰、去重:判斷兩個字符串去掉重復(fù)字符后是否一致
3、如果上面兩條都不符合烦感,就添加字符串 "not found"
Swift 解題過程
// 猜字謎
func HW2023001() {
// 測試用例
// let line1 = "conection", line2 = "connection,today"
// let line1 = "bdni,wooood,bnid", line2 = "bind,wrong,wood"
// let line1 = "bdni,wooood", line2 = "bind,wrong,wood"
// let line1 = "like,wooooood", line2 = "bind,wrong,wood"
// let miMian = line1.components(separatedBy: ",")
// let miDi = line2.components(separatedBy: ",")
// 正式代碼
let miMian = String(readLine()!).components(separatedBy: ",")
let miDi = String(readLine()!).components(separatedBy: ",")
var res: [String] = []
for mian in miMian {
var isFound = false
for di in miDi {
// 判斷兩個字符串排序后是否一樣
if mian.sorted() == di.sorted() { // 變序
res.append(di)
isFound = true
break
}else if quchong(mian, di) { // 去重
res.append(di)
isFound = true
break
}
}
if !isFound { res.append("not found") }
}
print(res.joined(separator: ","))
}
// 判斷兩個字符串去重后是否一樣
func quchong(_ mm: String, _ md: String) -> Bool {
let mmlist = Set(Array(mm)).sorted()
let mdlist = Set(Array(md)).sorted()
return mmlist == mdlist ? true : false
}