diff --git a/swift/online-stock-span.swift b/swift/online-stock-span.swift new file mode 100644 index 0000000..95e64fa --- /dev/null +++ b/swift/online-stock-span.swift @@ -0,0 +1,23 @@ +class StockSpanner { + private var st: [(Int, Int)] = [] + + init() {} + + func next(_ price: Int) -> Int { + var span = 1 + while !st.isEmpty && st.last!.0 <= price { + span += st.last!.1 + st.removeLast() + } + + st.append((price, span)) + + return span + } +} + +/** + * Your StockSpanner object will be instantiated and called as such: + * let obj = StockSpanner() + * let ret_1: Int = obj.next(price) + */