import Foundation
func canConstruct(_ str: String, _ anotherStr: String) -> Bool {
// ASCII frequency table
var freq = Array(repeating: 0, count: 256)
// Count characters in anotherStr
for ch in anotherStr.utf8 {
freq[Int(ch)] += 1
}
// Check if str can be constructed
for ch in str.utf8 {
let idx = Int(ch)
freq[idx] -= 1
if freq[idx] < 0 {
return false
}
}
return true
}
let str = "hello"
let anotherStr = "olehhlxyz"
print(canConstruct(str, anotherStr))
/*
run:
true
*/