✅ Swift Program: Integer to Roman #12
func intToRoman(_ num: Int) -> String {
let romanMap: [(symbol: String, value: Int)] = [
("M", 1000),
("CM", 900),
("D", 500),
("CD", 400),
("C", 100),
("XC", 90),
("L", 50),
("XL", 40),
("X", 10),
("IX", 9),
("V", 5),
("IV", 4),
("I", 1)
]
var number = num
var result = ""
for (symbol, value) in romanMap {
while number >= value {
result += symbol
number -= value
}
}
return result
}
✅ Swift Program: Roman to Integer #13
func romanToInt(_ s: String) -> Int {
let romanMap: [Character: Int] = [
"I": 1,
"V": 5,
"X": 10,
"L": 50,
"C": 100,
"D": 500,
"M": 1000
]
let chars = Array(s)
var result = 0
var prevValue = 0
for char in chars.reversed() {
let value = romanMap[char] ?? 0
if value < prevValue {
result -= value
} else {
result += value
}
prevValue = value
}
return result
}
// Example usage
print(romanToInt("MCMXCIV")) // Output: 1994
✅ Swift Program: Two Sum #1
var result = [Int]()
let target = 6
for i in 0..<nums.count {
for j in i+1..<nums.count {
if nums[i] + nums[j] == target {
result.append(i)
result.append(j)
}
}
}
return result
✅ Swift Solution Using HashMap (Optimal — O(n)) - Two Sum
func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
var map = Int: Int // value: index
for (index, num) in nums.enumerated() {
let complement = target - num
if let foundIndex = map[complement] {
return [foundIndex, index]
}
map[num] = index
}
return [] // No solution (but per problem, a solution is guaranteed)
}
🔍 Example Usage:
let nums = [2, 7, 11, 15]
let target = 9
print(twoSum(nums, target)) // Output: [0, 1] (because 2 + 7 = 9)
✅ Swift Solution (Two Pointers) 27. Remove Element
func removeElement(_ nums: inout [Int], _ val: Int) -> Int {
var i = 0
for num in nums {
if num != val {
nums[i] = num
i += 1
}
}
return I
}
🔍 Example:
var nums = [3, 2, 2, 3]
let val = 3
let length = removeElement(&nums, val)
print("New length: \(length)") // Output: 2
print("Updated array: \(nums.prefix(length))") // Output: [2, 2]
Top comments (0)