Algorithm(求最長子串的長度)
- 描述:給定一個字符串,請你找出其中不含有重復字符的最長子串的長度。
- 思路:一個整數(shù)數(shù)組作為直接訪問表來替換(基于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, 表示層狀態(tài)轉化)是一種軟件架構風格,它定義了一組創(chuàng)建Web服務端的約束和規(guī)則。Web服務端遵循
REST架構風格,提供因特網上計算機之間的交互規(guī)則。RESTful Web服務端允許請求方去訪問統(tǒng)一、預定義的無狀態(tài)操作集。至于其他的Web服務端,
它們都有屬于自己的操作集。 - "Web resources"首次被定義在萬維網上是通過URL作為文件和文檔來進行識別的。但在今天的Web上它擁有更通用、更抽象的定義,
它包含了所有可以在Web上以任何方式進行標識、命名、尋址或處理的東西或實體。在RESTful的Web服務端,通過所請求資源的URI,可以得到
HTML、XML、JSON等格式的載荷數(shù)據。這些響應的數(shù)據包含了已經修改了的存儲資源,也能提供其他相關資源的超文本鏈接。在使用HTTP進行請求的時候,
最常用的幾種可用的操作包括GET、HEAD、POST、PUT、PATCH、DELETE、CONNECT、OPTIONS和TRACE。 - 通過使用無狀態(tài)協(xié)議和標準操作,RESTful所在系統(tǒng)的目標追求的是高性能、高可靠、高擴展,那么在進行系統(tǒng)更新升級的時候,不會影響系統(tǒng)的其他
不相關部分。 - 2000年的時候,Roy Fielding在他的博士論文中介紹和定義了表示層狀態(tài)轉化的概念。Fielding的論文中闡述了REST規(guī)則的參考了1994年開始
的"HTTP對象模型",這些原則用于設計HTTP 1.1和統(tǒng)一資源標識符(Uniform Resource identifier, URI)標準。REST明確了要如何去設計一個
Web應用的參考動作:一個網絡的網絡資源(虛擬狀態(tài)機),用戶通過應用程序擇資源標識符(如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以上的環(huán)境,主要用于對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。