自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 React 组件,自动渲染文本中的 Url

import React from 'react';// 渲染 text 中的 url 为超链接export default class RenderTextUrl extends React.Component { render() { let result_array = []; const if_sep = c => ',,、。 []\n'.indexOf(c) === -1; for (let c of this.props.text) { if

2021-09-18 18:11:20 385

原创 脚本 - 自动设置终端前缀、安装 thefuck、安装 tldr(需要电脑安装有 pip3)

ArmTerminal.shMac 安装 pip3:https://www.jianshu.com/p/210aa11279e5Linux 安装 pip3:https://www.cnblogs.com/litifeng/p/11286928.html#!/bin/bash# 使用方法: source ArmTerminal.shecho "正在优化终端"echo "正在修改终端前缀..."if [ $(uname) = "Linux" ]then echo "判断为 Li

2021-08-26 20:50:34 311

原创 终端使用技巧

步骤 1 - 找到终端配置文件可能是~/.bashrc,也可能是~/.zshrc,视情况而定步骤 2 - 添加配置打开文件后,在文件尾部添加配置,注意格式我的配置:alias pt='python'步骤 3 - 激活配置执行:source ~/.bashrc或者source ~/.zshrc...

2021-08-02 16:35:54 475

原创 通过【依赖注入】实现【控制反转】

参考链接:https://zhuanlan.zhihu.com/p/33492169依赖注入:把a程序依赖的程序b通过参赛传入,而不是由a在运行时去创建b控制反转:通过依赖注入或者其它方式,就实现了将b的控制权抽离到了a之外,转由第三方负责...

2021-08-02 12:50:30 111

转载 Python 函数装饰器

本质:本身是一个套在更外层的函数作用:修改其它函数的功能原理:装饰器让你在一个函数的前后去执行代码扩展链接菜鸟教程 - https://www.runoob.com/w3cnote/python-func-decorators.html基本结构from functools import wrapsdef a_decorator(fn): @wraps(fn)# @wraps接受一个函数来进行装饰,并加入了复制函数名称、注释文档、参数列表等等的功能 def deco.

2021-07-14 19:21:22 135

原创 批量覆盖当前上下文中的函数,用来隔离可以访问生产环境的函数

我遇到了这样一个场景。在一个.py文件中,头部引入了一些可以直接访问生产环境 API 的函数,这些函数在后续的代码中频繁被用到。而 API 的提供者没有提供对应的测试环境。这就造成开发的时候很可能会不小心调用到会造成严重后果的函数。假设在另一个 python 文件other_model中有三个函数:def a(): print('real a fun was called.') return 'real a fun return value'def b(): print('real b fu

2021-05-24 18:03:41 85

原创 Python 中上下文管理器 with 的使用

class A(): def __init__(self): print('A was initialized.') def __enter__(self): print('Enter~~') return 'Needs value of A.' def __exit__(self, exc_type, exc_val, exc_tb): print('Exit~~')with A() as a: print(a)# A was initialized.# Enter~

2021-05-24 17:37:14 71

原创 git 速查笔记

理念 & 技巧 & 提示git 关键词 & 特性分布式 交换 版本控制 可离线 分支 基于修改代码位置仓库外 - 工作区(Working Directory) - 暂存区(stage) - 版本库(Repository) - 远程库(origin)缺点只能跟踪管理文本文件指针 - (HEAD -> master -> a commit)HEAD - 当前的commit版本HEAD^ - 前一个commit版本HEAD^^ - 前两

2021-01-13 16:54:13 845 1

原创 React 官网入门教程 - 井字棋小游戏

刚刚开始学习 React,跟着官网的小教程做了一遍,还做了一些代码的精简和修改官网教程地址:点击跳转到官网最终效果:import React from 'react'import ReactDOM from 'react-dom'import './index.css'const Square = props => <button className="square" onClick={props.onClick} >{props.value}</button&g.

2020-12-18 16:58:40 426 1

原创 手撕前端面试代码题

序最近我终于找到了一份满意的工作(字节跳动的实习岗)准备面试的过程中,我整理出了一些有用的笔记,这篇就是其中之一.既然写好了,不妨就放在这里分享给大家.面试通常都有现场写代码的题目,我基本每次都或多或少的翻车.有意思的是,每次面试结束,自己改不到五分钟就调试出来了.所以面试中的写代码的过程,一定不能紧张,要沉住气慢慢来.只要不是系统自动检查结果,只要是面试官看着你写,就有很大的表现的机会,哪怕最后做不出来.我参加的最烦人的面试,是那种系统判定结果的面试,只要做不出来,就绝对不可.

2020-11-21 13:33:15 9907 24

原创 深入理解promise - promise实现(注释版 - 通过promise A+ test全部测试用例) promisify ES6中的promise promise使用

学习资料promise 基础https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promisepromises A+规范https://github.com/promises-aplus/promises-specPromiseA+规范(中文)https://www.jianshu.com/p/e0f91e03d6c1promises A+规范测试工具用例工具htt

2020-11-12 12:44:15 2013 3

原创 设计模式 - Javascript 描述

理解设计模式项目=模块+模块间的联系设计模式的作用 - 优化模块内结构模块间关系代码质量学习设计模式要脱离出具体的语法,去领会思想设计原则开闭 - 程序 对扩展开放,对修改关闭单一职责 - 模块依赖倒置上层模块不依赖于下层具体的模块,而依赖于抽象的功能避免下层变动对上层产生剧烈影响.中间增加抽象层class food1 {}class food2 {}class food3 {}//点餐 - 具体层function order(food) {

2020-11-12 12:32:31 1412 3

原创 树 - 广度优先(层次)遍历(JSON形式表示)

题目参考下图,输出 id 和 level 的映射定义 根节点的 深度 是 0,子节点的深度是父节点的 深度 + 1答案const node = { "id": 1, "level": 0, "children": [{ "id": 2, "level": 0, "children": [{ "id": 4, "level": 0, "children": [] }, { "id": 5, "level": 0, "children": []

2020-11-11 01:01:55 677 1

原创 链表 - 找到链表的第一个结点

题目寻找链表的头节点,每个节点,有 id 和 nextId 两个属性,nextId 表示指向节点 id。现在请实现一个办法寻找该链表的头节点。PS. 考虑一下链表环状,以及节点不在链表内等异常情况,出现异常时,打印异常消息即可。解答const findFirstNode = (nodeList) => { let nodes = new Map()//把当前结点和下一个结点反向存入map nodeList.forEach(item => nodes.set(item.n

2020-11-11 00:55:22 1885

原创 v-bind sync 修饰符标准用法

效果:代码:<!DOCTYPE html><html><head> <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.js"></script></head><body><div id="app"> <!-- 展示在子组件编辑时,父元素数据的变化 --> data1: {{data1}} <br&

2020-11-07 21:59:11 1227

原创 JavaScript 数组去重 unique()

function unique(arr) { let obj = {} return arr.filter(item=> { let newItem = item + JSON.stringify(item) return obj.hasOwnProperty(newItem) ? false : obj[newItem] = true })}console.log(unique([11,11,11,2,3,3,3,function a()

2020-11-06 20:14:36 1393

原创 八皇后 - vue实现

演示地址<!DOCTYPE html><html><head> <title>八皇后</title> <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.9/vue.js"></script> <style> .grid { width: 400px; margin: 0 auto; } .cell {

2020-11-04 22:41:25 139

原创 LRU缓存机制 数组 链表 两种实现

leetcode:146. LRU缓存机制运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put获取数据 get(key)如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数)否则返回 -1。写入数据 put(key, value)如果关键字已经存在,则变更其数据值如果关键字不存在,则插入该组「关键字/值」当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从

2020-11-03 11:40:34 285

原创 一文搞懂搜索树 - 二叉搜索树(排序树) AVL树 多路搜索树(B树) (2,4)树 伸展树 B+树 B*树 R树 & 性能分析

文章较长,建议参照目录参考:书 :《数据结构与算法–Python语言实现》(原名:《Data Structures and Algorithms in Python》)有序映射 - 同时提供有序序列和映射的功能有序序列le() / lt() / ge() / gt()max() / min()indexOf()range()iter()reverse()可以利用有序序列对无序元素进行排序映射map[k] - 查找map[k]=v - 添加&修改de

2020-10-29 23:12:48 588

原创 种花问题 - 筛选 - 数组 - javascript

leetcode:605题假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。输入: flowerbed = [1,0,0,0,1], n = 1输出: True输入: flowerbed = [1,0,0,0,1], n = 2输出: F

2020-10-19 09:40:06 81

原创 格雷编码 - 二进制 - 递归 - python javascript

leetcode:89题格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。即使有多个不同答案,你也只需要返回其中一种。格雷编码序列必须以 0 开头。输入: 2输出: [0,1,3,2]解释:00 - 001 - 111 - 310 - 2格雷编码序列并不唯一。例如,[0,2,3,1] 也是一个有效的格雷编码序列。00 - 010 - 211 - 301 - 1输入: 0输出: [

2020-10-17 20:25:12 201

原创 重复的子字符串 - 正则表达式 - python javascript

leetcode:459题题目:给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。输入: “abab”输出: True输入: “aba”输出: False输入: “abcabcabcabc”输出: True#python 解法1class Solution: def repeatedSubstringPattern(self, s: str) -> bool: return

2020-10-17 20:23:30 597

原创 正则表达式匹配 - python javascript

leetcode:10题给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素输入:s = “mississippi”p = “mis*is*p*.”输出: false//js 解法 (正则)var isMatch = function(s, p) { let isMatch = (s, p) => {

2020-10-17 20:21:35 212

原创 卡牌分组 - python javascript

leetcode:914题输入:[1,1,2,2,2,2]输出:true解释:可行的分组是 [1,1],[2,2],[2,2]输入:[1,2,3,4,4,3,2,1]输出:true解释:可行的分组是 [1,1],[2,2],[3,3],[4,4]输入:[1,1,1,2,2,2,3,3]输出:false解释:没有满足要求的分组#python解法class Solution: def hasGroupsSizeX(self, deck): return

2020-10-17 20:19:34 105

原创 电话号码的组合(公式) - 数组 -递归 回溯 - python javascript

leetcode17题输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]#python解法(使用内置排列组合库)class Solution: def letterCombinations(self, digits: str) -> List[str]: if len(digits)==0:return [] num_letter_map={'2':'abc','3':'d

2020-10-17 20:16:34 274

原创 计数二进制子串 - 字符串 - python javascript

(leetcode:696)输入: “00110011”输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。#python写法class Solution: def countBinarySubstrings(self, s: str) -> int: seq0, seq1 = 0, 1 #用来记录当前正在统计的0和1的数量 res = 0 #用来统计结果

2020-10-17 20:12:28 135

原创 翻转字符串中的单词 - 字符串操作 - python javascript

(leetCode:557)输入:“Let’s take LeetCode contest”输出:“s’teL ekat edoCteeL tsetnoc”#python语法class Solution: def reverseWords(self, s: str) -> str: return " ".join([sub_s[::-1] for sub_s in s.split()])//js语法1:直接匹配字符串var reverseWords = funct

2020-10-17 20:09:54 74

原创 edit-distance - 编辑距离 - 动态规划 - 思路

动态规划表格练习https://alchemist-al.com/algorithms/edit-distance要编辑的两个串GAACTCAATC初始表格GGACT012345C1A2A3T4C5填了一半的表格GGACT012345C112334A22=>=>=&g

2020-10-17 20:06:20 97

原创 LCS - 最长公共子序列 - 动态规划 - 思路

动态规划表格练习https://alchemist-al.com/algorithms/longest-common-subsequence要匹配的两个串TACCCGCTGAAG初始表格GATGGGAT000000000A0G0T0A0填了一半的表格GATGGGAT000000000

2020-10-17 20:04:21 113

原创 全排列 - 深度优先遍历 & 广度优先遍历 - javascript

题目 - 全排列用例1输入[1,2,3]输出1[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]解对应的树用例2输入[1,2,3,4]输出[ [ 1, 2, 3, 4 ], [ 1, 2, 4, 3 ], [ 1, 3, 2, 4 ], [ 1, 3, 4, 2 ], [ 1, 4, 2, 3 ], [ 1, 4, 3, 2 ], [ 2, 1, 3, 4 ], [ 2, 1,

2020-10-17 20:01:09 965 1

原创 Python 中的正则表达式全部用法速查

正则表达式正则语法特性正则表达式可以拼接,如果 A 和 B 都是正则表达式,那么 AB 也是正则表达式.如果字符串 p 匹配 A 并且另一个字符串 q 匹配 B, 那么 pq 可以匹配 AB.这就构成了由简单构建复杂的基础.除非:A 或者 B 包含低优先级操作A 和 B 存在边界条件存在命名组引用。字符元字符 : 特殊字符它们不匹配自己,在正则中具有其它的意义,匹配自己需要转义.元字符的完整列表:基础字符字符功能\转义[ ]匹配一类单个字符,

2020-09-10 20:12:38 967

原创 markdown全部基础语法总结

一些写在前面的小细节:1. 行级格式符号,和后面的文本之间最好加一个空格2. 列表和区块可以相互嵌套3. markdown中支持html标签4. 特殊字符可通过"\"转义标题:有分割线的大标题==有分割线的小标题--# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题无序列表:- 第一行- 第二行- 第三行+ 第一行+ 第二行+ 第三行* 第一行* 第

2020-09-02 18:29:24 248

原创 CCF CSP 201503-1 python 100分

题目:思路:#先存进来#然后从后往前一列一列输出n,m=list(map(int,input().split()))martix=[]for i in range(n): temp_input=list(map(int,input().split())) martix.append([v for v in temp_input])for j in range(m-1,-1,-1): for i in range(n): print(martix[i][j]..

2020-07-03 12:29:39 249

原创 CCF CSP 202006-4 1246 Python 动态规划

#最后一个子任务还没做,做出来再补充#官网出题之后再补上原题简单描述下题目#1246四个数字#输入n(),S()#从1开始,对其进行迭代n次,对其每一位数字进行以2为底的幂运算#比如 "246" -> "41664(4 16 64)"##求在迭代n次之后,字符串S在长字符串中出现的次数用例:输入:926输出:5解释:迭代第九次:"166416264641626446416166416264264641626446416"..

2020-06-30 11:10:14 5338

原创 答答租车系统

租车系统在慕课网上学习《Java入门第二季》到最后一章的时候,老师布置了一个小作业。题目叫“ 答答租车系统 ”。需求是列出现有 车型 和 相关参数 ,然后要求用户输入 车型序号 ,租用天数然后计算并输出 总载客量、总载货量 和 总租金因为这是第一次用面向对象的语言(Java)做程序,之前一直做前端。还不能很好的利用Java面向对象的特点。用的还是前端解决问题的思路。(其实也不能全赖我,老...

2018-11-26 22:34:48 485

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除