From 585ee222df066bd650b26cd03d868237400166ed Mon Sep 17 00:00:00 2001 From: Jiayang Wu Date: Thu, 14 Nov 2019 22:54:17 -0500 Subject: [PATCH] 2019-11-14 --- ...14\345\220\221\351\223\276\350\241\250.py" | 38 +++++++++++++++++++ ...14\347\232\204\346\226\207\345\255\227.py" | 38 +++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 "0430.\346\211\201\345\271\263\345\214\226\345\244\232\347\272\247\345\217\214\345\220\221\351\223\276\350\241\250/0430-\346\211\201\345\271\263\345\214\226\345\244\232\347\272\247\345\217\214\345\220\221\351\223\276\350\241\250.py" create mode 100644 "0809.\346\203\205\346\204\237\344\270\260\345\257\214\347\232\204\346\226\207\345\255\227/0809-\346\203\205\346\204\237\344\270\260\345\257\214\347\232\204\346\226\207\345\255\227.py" diff --git "a/0430.\346\211\201\345\271\263\345\214\226\345\244\232\347\272\247\345\217\214\345\220\221\351\223\276\350\241\250/0430-\346\211\201\345\271\263\345\214\226\345\244\232\347\272\247\345\217\214\345\220\221\351\223\276\350\241\250.py" "b/0430.\346\211\201\345\271\263\345\214\226\345\244\232\347\272\247\345\217\214\345\220\221\351\223\276\350\241\250/0430-\346\211\201\345\271\263\345\214\226\345\244\232\347\272\247\345\217\214\345\220\221\351\223\276\350\241\250.py" new file mode 100644 index 0000000..08d25c6 --- /dev/null +++ "b/0430.\346\211\201\345\271\263\345\214\226\345\244\232\347\272\247\345\217\214\345\220\221\351\223\276\350\241\250/0430-\346\211\201\345\271\263\345\214\226\345\244\232\347\272\247\345\217\214\345\220\221\351\223\276\350\241\250.py" @@ -0,0 +1,38 @@ +""" +# Definition for a Node. +class Node(object): + def __init__(self, val, prev, next, child): + self.val = val + self.prev = prev + self.next = next + self.child = child +""" +class Solution(object): + def flatten(self, head): + """ + :type head: Node + :rtype: Node + """ + if not head: + return head + + def helper(node): + # 返回的是最后一个节点 + if not node: + return + while node: + nxt = node.next # 备份 next + if not nxt: + tail = node # 记录 tail,用于返回 + if node.child: + node.next = node.child # 把child 变成next + node.next.prev = node + t = helper(node.child) # 递归处理,t 是处理之后的 原来的child 的最后一个节点 + node.child = None # 把child 置空 + if nxt: # 如果有next 部分,就让next的prev指向 原来的child 处理之后的最后一个节点 + nxt.prev = t + t.next = nxt # 让 t.next 指向原来的 next + node = node.next + return tail + helper(head) + return head \ No newline at end of file diff --git "a/0809.\346\203\205\346\204\237\344\270\260\345\257\214\347\232\204\346\226\207\345\255\227/0809-\346\203\205\346\204\237\344\270\260\345\257\214\347\232\204\346\226\207\345\255\227.py" "b/0809.\346\203\205\346\204\237\344\270\260\345\257\214\347\232\204\346\226\207\345\255\227/0809-\346\203\205\346\204\237\344\270\260\345\257\214\347\232\204\346\226\207\345\255\227.py" new file mode 100644 index 0000000..59c336c --- /dev/null +++ "b/0809.\346\203\205\346\204\237\344\270\260\345\257\214\347\232\204\346\226\207\345\255\227/0809-\346\203\205\346\204\237\344\270\260\345\257\214\347\232\204\346\226\207\345\255\227.py" @@ -0,0 +1,38 @@ +class Solution(object): + def expressiveWords(self, S, words): + """ + :type S: str + :type words: List[str] + :rtype: int + """ + + s = set(S) + res = 0 + for word in words: + if len(S) < len(word): + continue + + i, j = 0, 0 + flag = 0 + while i < len(S) and j < len(word): + if S[i] != word[j]: + flag = 1 + break + pre = S[i] + cnt_i = 0 + while i < len(S) and S[i] == pre: + i += 1 + cnt_i += 1 + + cnt_j = 0 + while j < len(word) and word[j] == pre: + j += 1 + cnt_j += 1 + + # print cnt_i, cnt_j + if (cnt_i < 3 and cnt_i != cnt_j) or cnt_i < cnt_j: + flag = 1 + + if not flag and i == len(S): + res += 1 + return res \ No newline at end of file