From 47df32d855bfe2c5bb5e0e9904a8feaf419250c0 Mon Sep 17 00:00:00 2001 From: CRGT_Ghcoder Date: Thu, 16 May 2019 22:22:09 +0800 Subject: [PATCH 1/2] add leetcode 211 --- Week_04/id_31/LeetCode_211_031.swift | 53 ++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Week_04/id_31/LeetCode_211_031.swift diff --git a/Week_04/id_31/LeetCode_211_031.swift b/Week_04/id_31/LeetCode_211_031.swift new file mode 100644 index 00000000..05745c31 --- /dev/null +++ b/Week_04/id_31/LeetCode_211_031.swift @@ -0,0 +1,53 @@ +// +// LeetCode_211_031.swift +// TestCoding +// +// Created by 龚欢 on 2019/5/16. +// Copyright © 2019 龚欢. All rights reserved. +// + +import Foundation + +class WordDictionary { + private class TrieNode { + var children: [Character: TrieNode] = [:] + var isEnd = false + } + + private let root: TrieNode + + init() { + root = TrieNode() + } + + func addWord(_ word: String) { + var node = root + for char in word { + if node.children[char] == nil { + node.children[char] = TrieNode() + } + node = node.children[char]! + } + node.isEnd = true + } + + func search(_ word: String) -> Bool { + return bfs(self.root, Array(word), 0) + } + + private func bfs(_ node: TrieNode, _ chars: [Character], _ nextIndex: Int) -> Bool { + if nextIndex == chars.count { + return node.isEnd + } + + for (nextChar, nextNode) in node.children { + if chars[nextIndex] == "." || chars[nextIndex] == nextChar { + if bfs(nextNode, chars, nextIndex + 1) { + return true + } + } + } + + return false + } +} From 2d86bd6fad024a5e8e31389435d0eeb6a880855a Mon Sep 17 00:00:00 2001 From: CRGT_Ghcoder Date: Mon, 20 May 2019 21:33:12 +0800 Subject: [PATCH 2/2] add leetcode 746 --- Week_04/id_31/LeetCode_746_031.swift | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 Week_04/id_31/LeetCode_746_031.swift diff --git a/Week_04/id_31/LeetCode_746_031.swift b/Week_04/id_31/LeetCode_746_031.swift new file mode 100644 index 00000000..c88a803e --- /dev/null +++ b/Week_04/id_31/LeetCode_746_031.swift @@ -0,0 +1,22 @@ +// +// LeetCode_746_031.swift +// TestCoding +// +// Created by 龚欢 on 2019/5/20. +// Copyright © 2019 龚欢. All rights reserved. +// + +import Foundation + +class Solution { + func minCostClimbingStairs(_ cost: [Int]) -> Int { + guard cost.count >= 2 else { return 0 } + var dp: [Int: Int] = [:] + dp[0] = cost[0] + dp[1] = cost[1] + for i in 2..