temp

375 数据双向绑定演示:一个 input + v-model,Object.defineProperty,数据双向绑定的原理简单实现

筅森魡賤 提交于 2020-03-14 15:30:26
5.1 一个 input + v-model v-model 指令 : 数据双向绑定的指令 作用 : 把data中的msg值 和 input上的值 绑定到一起 注意 : v-model只能用在 表单控件上 (input checkbox 等) > 可以在浏览器分别演示 V => M 和 M =>V <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</title> </head> <body> <div id="app"> <!-- V --> <!-- v-model --> <!-- 作用 : 把`input的value值` 和 `data里的msg` 绑定到了一起, 只要一方发生变化,另外 一方会跟着改变 --> <input type="text" v-model="msg" /> </div> <script src="./vue.js"></script> <script> const vm = new Vue({ el: '#app', data: { // M msg: '这是测试信息' } }) </script> </body> </html> 5.2 Object.defineProperty 内在-响应式原理 let obj = {} let

栈与队列:栈的链式储存结构

好久不见. 提交于 2020-03-14 12:46:18
1 链栈通常用单链表表示,由于栈的主要操作是栈顶插入与删除,显然以链表的头部作为栈顶最方便,而且没必要为了操作方便附加一个头结点 2 //链式存储结构(将单链表头指针与栈顶合二为一) 3 typedef struct StackNode 4 { 5 ElemType data; 6 struct StackNode *next; 7 }StackNode,*LinkStackPtr; 8 typedef struct LinkStack 9 { 10 LinkStackPtr top; 11 int count; 12 } 13 Status Push(LinkStack *s,ElemType e) 14 { 15 LinkStackPtr p = (LinkStackPtr)malloc(sizeof(StackNode)); 16 p->data = e; 17 p->next = s->top; //新插入结点的指针域指向栈顶 18 s->top = p; //栈顶换成p 19 s->count++; 20 return OK; 21 } 22 23 Status Pop(LinkStack *s,ElemType *e) 24 { 25 LinkStackPtr p; 26 if(StackEmpty(*s)) 27 { 28 return ERROR; 29 } 30

AC自动机算法详解(入门)

空扰寡人 提交于 2020-03-14 04:20:13
AC自动机算法详解 首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)Trie和KMP模式匹配算法的基础知识。AC自动机算法分为3步:构造一棵Trie树,构造失败指针和模式匹配过程。 如果你对KMP算法和了解的话,应该知道KMP算法中的next函数(shift函数或者fail函数)是干什么用的。KMP中我们用两个指针i和j分别表示,A[i-j+ 1..i]与B[1..j]完全相等。也就是说,i是不断增加的,随着i的增加j相应地变化,且j满足以A[i]结尾的长度为j的字符串正好匹配B串的前 j个字符,当A[i+1]≠B[j+1],KMP的策略是调整j的位置(减小j值)使得A[i-j+1..i]与B[1..j]保持匹配且新的B[j+1]恰好与A[i+1]匹配,而next函数恰恰记录了这个j应该调整到的位置。同样AC自动机的失败指针具有同样的功能,也就是说当我们的模式串在Tire上进行匹配时,如果与当前节点的关键字不能继续匹配的时候,就应该去当前节点的失败指针所指向的节点继续进行匹配。 看下面这个例子:给定5个单词:say she shr he her

linux 安装nginx yum

橙三吉。 提交于 2020-03-13 05:09:51
本分类下有一个环境一键安装.那这背后发生了什么呢?咱们手动使用源码进行安装. 1.首先保证有一个能联网的centos. 2.百度 ningx 官网 点download http://nginx.org/en/download.html 找到最新版的nginx下载地址. 发贴时最新的是1.12 http://nginx.org/download/nginx-1.12.0.tar.gz 3.进行centos 执行命令 #安装wget yum install wget -y #安装gcc和c++编译器 yum install gcc gcc-c++ -y 错误提示: ./configure: error: the HTTP rewrite module requires the PCRE library. 安装pcre-devel与openssl-devel解决问题 yum -y install pcre-devel openssl openssl-devel ./configure --prefix=/usr/local/nginx make make install 4.新建临时目录 /temp 然后下载并解压. 命令如下 mkdir /temp ; cd /temp ; wget http: //nginx .org /download/nginx-1 .12.0. tar .gz

手动安装Nginx

梦想与她 提交于 2020-03-13 05:09:09
本分类下有一个环境一键安装.那这背后发生了什么呢?咱们手动使用源码进行安装. 1.首先保证有一个能联网的centos. 2.百度 ningx 官网 点download http://nginx.org/en/download.html 找到最新版的nginx下载地址. 发贴时最新的是1.12 http://nginx.org/download/nginx-1.12.0.tar.gz 3.进行centos 执行命令 [Shell] 纯文本查看 复制代码 ? 1 2 3 4 #安装wget yum install wget -y #安装gcc和c++编译器 yum install gcc gcc-c++ -y 4.新建临时目录 /temp 然后下载并解压. 命令如下 [Shell] 纯文本查看 复制代码 ? 1 2 3 4 5 mkdir /temp ; cd /temp ; wget http: //nginx .org /download/nginx-1 .12.0. tar .gz tar zxvf . /nginx-1 .12.0. tar .gz cd /temp/nginx-1 .12.0 得到目录 [root@localhost nginx-1.12.0]# pwd /temp/nginx-1.12.0 [root@localhost nginx-1.12.0]# ll

POJ 1320 Street Numbers Pell方程

余生长醉 提交于 2020-03-12 18:52:52
http://poj.org/problem?id=1320 题意很简单,有序列 1,2,3...(a-1),a,(a+1)...b 要使以a为分界的 前缀和 和 后缀和 相等 求a,b 因为序列很特殊所以我们用数学方法就可以解决 : 求和: a*(a-1)/2 = (a+1+b)(b-a)/2 化简: 2a 2 = b 2 + b 两边乘4,构造完全平方项 (2b+1) 2 - 8a 2 = 1 令 x = 2*b+1; y = a; 我们就得到了一个形如Pell方程x 2 - Dy 2 = 1 的式子 x 2 - 8y 2 = 1 这题就是求Pell方程的第K个解 , 因为方程已经告诉你了 所以我们可以目测出最小解以用来构造矩阵来求出后面的解 下面就是构造系数矩阵的方法: 已知Pell方程为 x 2 - Dy 2 = 1 为了得到第k个解,我们需要构造系数矩阵 为了得到系数矩阵,我们必须知道该方程的最小特解 x0,y0 于是我们就能得到系数矩阵: x k y k 就是Pell方程的第k个解 对于Pell方程最小特解的求法,可以参照我上一篇 http://www.cnblogs.com/Felix-F/p/3222741.html 当然这题一眼就能看出最小特解为x=3,y=1 用矩阵快速幂小加了一下速 (应该是逗比了..这样反而复杂度高了....直接记录各层次的矩阵就行...

AD7739的SPI程序,DS1302的SPI程序,和24C02IIC程序字节读写总结

落爺英雄遲暮 提交于 2020-03-12 13:08:39
一、AD7739的SPI程序 空闲电平是高电平,所以字节读写程序最后时钟电平是高电平,必须是完整的时钟周期。 void Write7738(unsigned char ch) { unsigned char idata, n=8; // 向SDA上发送一位数据字节,共八位 //传输时钟频率117.260KHZ,T=8.528US和波形相符合2020.1.11 CS=0; //但是硬件的SPI计算频率140.625KHZ,实际波形234.625KHZ,T=4.26US不相符合2020.1.11 SCK = 1 ; //时钟置高 while(n--) { delay_us(3); //delay(3); SCK = 0 ; //时钟置低 if((ch&0x80) == 0x80) // 若要发送的数据最高位为1则发送位1 { MOSI = 1; // 传送位1 } else { MOSI = 0; // 否则传送位0 } delay_us(3); //delay(3); SCK = 1 ; //时钟置高 ch = ch<<1; // 数据左移一位 } CS=1; //在103行导致RDY引脚一直是高电平 } //----------------------------------------------------------------------------------------

PyCharm异常捕获Warning(try-except)

99封情书 提交于 2020-03-12 12:18:47
  PyCharm更新2018.3.1版本后新加了一些检测,例如在使用如下的 Try except : try: ... except Exception as e: ...   上述代码会报如下的警告: Too broad exception clause less... (Ctrl+F1) Inspection info: This inspection highlights too broad exception clauses such as no exception class specified, or specified as 'Exception'.   翻译解释一下就是 Exception 没有指定错误类型,捕获的异常过于宽泛,没有针对性,可以通过指定精确的异常类型来解决。 解决方法:   在 try 前面加上如下注释: # noinspection PyBroadException   示例: # noinspection PyBroadException try: response = requests.post(url=sys.argv[1], data=eval(sys.argv[2])) with open("./post.temp", "w") as temp: temp.write(response.text) except Exception as

LeetCode 力扣 93. 复原IP地址

天大地大妈咪最大 提交于 2020-03-12 12:11:25
题目描述(中等难度) 给一个字符串,输出所有的可能的 ip 地址,注意一下,01.1.001.1 类似这种 0 开头的是非法字符串。 解法一 回溯 递归 DFS 很类似于刚做过的 91 题 ,对字符串进行划分。这个其实也是划分,划分的次数已经确定了,那就是分为 4 部分。那么就直接用回溯的思想,第一部分可能是 1 位数,然后进入递归。第一部分可能是 2 位数,然后进入递归。第一部分可能是 3 位数,然后进入递归。很好理解,直接看代码理解吧。 public List < String > restoreIpAddresses ( String s ) { List < String > ans = new ArrayList < > ( ) ; //保存最终的所有结果 getAns ( s , 0 , new StringBuilder ( ) , ans , 0 ) ; return ans ; } /** * @param: start 字符串开始部分 * @param: temp 已经划分的部分 * @param: ans 保存所有的解 * @param: count 当前已经加入了几部分 */ private void getAns ( String s , int start , StringBuilder temp , List < String > ans , int

c# 匿名对象增加动态属性

China☆狼群 提交于 2020-03-12 06:22:41
在开发过程中碰到了一个需求,需要动态创建对象及其动态属性。在尝试几种方法后,最后完成了需求,记录下过程,给园友参考下 1.动态创建对象一:匿名对象 object obj1 = new {Name = "金朝钱",Age="31",Birthday =DateTime.Now}; 创建的匿名对象: 问题1:无法动态映射对象属性 解决:使用反射的方式获取对象值 object obj1 = new {Name = "金朝钱",Age="31",Birthday =DateTime.Now}; Response.Write(string.Format("Name:{0}", obj1.GetType().GetProperty("Name").GetValue(obj1, null).ToString())); 输出结果 问题2:无法动态创建对象属性 2.使用动态对象创建方法二、动态对象 dynamic obj2 = new System.Dynamic.ExpandoObject(); obj2.Name = "金朝钱"; obj2.Age = 31; obj2.Birthday = DateTime.Now; Response.Write(string.Format("Name:{0}", obj2.Name)); 创建的动态对象: 输出结果: 问题:还是不能动态增加对象 3