Algorithm(求最长子串的长度)
- 描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。
- 思路:一个整数数组作为直接访问表来替换(基于ASCII码),采用的方法也是题解给出的方式(已弄懂原理),充分暴露了自己算法方面的缺点。
- 性能:时间复杂度O(n); 空间复杂度:O(min(m,n))
- 编码(java):
public int lengthOfLongestSubstring(String str) {
int n = str.length(), ans = 0;
int[] index = new int[128]; // current index of character
for (int j = 0, i = 0; j < n; j++) {
i = Math.max(index[str.charAt(j)], i);
ans = Math.max(ans, j - i + 1);
index[str.charAt(j)] = j + 1;
}
return ans;
}
Review (Restful概览)
- 来源:https://en.wikipedia.org/wiki/Representational_state_transfer
- Rest(Representation State Transfer, 表示层状态转化)是一种软件架构风格,它定义了一组创建Web服务端的约束和规则。Web服务端遵循
REST架构风格,提供因特网上计算机之间的交互规则。RESTful Web服务端允许请求方去访问统一、预定义的无状态操作集。至于其他的Web服务端,
它们都有属于自己的操作集。 - "Web resources"首次被定义在万维网上是通过URL作为文件和文档来进行识别的。但在今天的Web上它拥有更通用、更抽象的定义,
它包含了所有可以在Web上以任何方式进行标识、命名、寻址或处理的东西或实体。在RESTful的Web服务端,通过所请求资源的URI,可以得到
HTML、XML、JSON等格式的载荷数据。这些响应的数据包含了已经修改了的存储资源,也能提供其他相关资源的超文本链接。在使用HTTP进行请求的时候,
最常用的几种可用的操作包括GET、HEAD、POST、PUT、PATCH、DELETE、CONNECT、OPTIONS和TRACE。 - 通过使用无状态协议和标准操作,RESTful所在系统的目标追求的是高性能、高可靠、高扩展,那么在进行系统更新升级的时候,不会影响系统的其他
不相关部分。 - 2000年的时候,Roy Fielding在他的博士论文中介绍和定义了表示层状态转化的概念。Fielding的论文中阐述了REST规则的参考了1994年开始
的"HTTP对象模型",这些原则用于设计HTTP 1.1和统一资源标识符(Uniform Resource identifier, URI)标准。REST明确了要如何去设计一个
Web应用的参考动作:一个网络的网络资源(虚拟状态机),用户通过应用程序择资源标识符(如http://www.example.com/articles/21)和
资源操作(如GET或POST),将资源转换到最终用户的手中进行使用。
Tip(Vue兼容360、ie浏览器)
一、关于babel-polyfill
- 说明:This will emulate a full ES2015+ environment and is intended to be used in an application rather than a library/tool. This polyfill is automatically loaded when using babel-node.(模拟ES2015以上的环境,主要用于对ES6不支持的新语法不支持的浏览器);
- 安装:npm install --save babel-polyfill;
- 配置:module.exports = { entry: ["babel-polyfill", "./src/main.js"] };
- main.js中配置:import 'babel-polyfill' //放在最顶部,确保全面加载。
二、关于es6-promise
- 说明:若在项目中使用了ES6 promise对象,它在Chrome、Safari浏览器下可以正常运行,但在360兼容模式、IE内核中不支持;
- 安装:npm install es6-promise;
- 配置:在main.js中加入require('es6-promise').polyfill(),用于在node或浏览器中支持ES6 与CommonJS。
网友评论