Algorithm(求最長(zhǎng)子串的長(zhǎng)度)
- 描述:給定一個(gè)字符串嘀趟,請(qǐng)你找出其中不含有重復(fù)字符的最長(zhǎng)子串的長(zhǎng)度。
- 思路:一個(gè)整數(shù)數(shù)組作為直接訪問(wèn)表來(lái)替換(基于ASCII碼)绳姨,采用的方法也是題解給出的方式(已弄懂原理)登澜,充分暴露了自己算法方面的缺點(diǎn)。
- 性能:時(shí)間復(fù)雜度O(n); 空間復(fù)雜度: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概覽)
- 來(lái)源:https://en.wikipedia.org/wiki/Representational_state_transfer
- Rest(Representation State Transfer, 表示層狀態(tài)轉(zhuǎn)化)是一種軟件架構(gòu)風(fēng)格脑蠕,它定義了一組創(chuàng)建Web服務(wù)端的約束和規(guī)則。Web服務(wù)端遵循
REST架構(gòu)風(fēng)格谴仙,提供因特網(wǎng)上計(jì)算機(jī)之間的交互規(guī)則。RESTful Web服務(wù)端允許請(qǐng)求方去訪問(wèn)統(tǒng)一晃跺、預(yù)定義的無(wú)狀態(tài)操作集揩局。至于其他的Web服務(wù)端,
它們都有屬于自己的操作集掀虎。 - "Web resources"首次被定義在萬(wàn)維網(wǎng)上是通過(guò)URL作為文件和文檔來(lái)進(jìn)行識(shí)別的。但在今天的Web上它擁有更通用烹玉、更抽象的定義,
它包含了所有可以在Web上以任何方式進(jìn)行標(biāo)識(shí)春霍、命名砸西、尋址或處理的東西或?qū)嶓w。在RESTful的Web服務(wù)端址儒,通過(guò)所請(qǐng)求資源的URI芹枷,可以得到
HTML莲趣、XML、JSON等格式的載荷數(shù)據(jù)喧伞。這些響應(yīng)的數(shù)據(jù)包含了已經(jīng)修改了的存儲(chǔ)資源,也能提供其他相關(guān)資源的超文本鏈接潘鲫。在使用HTTP進(jìn)行請(qǐng)求的時(shí)候,
最常用的幾種可用的操作包括GET挖函、HEAD、POST怨喘、PUT振定、PATCH必怜、DELETE后频、CONNECT、OPTIONS和TRACE靠益。 - 通過(guò)使用無(wú)狀態(tài)協(xié)議和標(biāo)準(zhǔn)操作,RESTful所在系統(tǒng)的目標(biāo)追求的是高性能胧后、高可靠抱环、高擴(kuò)展,那么在進(jìn)行系統(tǒng)更新升級(jí)的時(shí)候镇草,不會(huì)影響系統(tǒng)的其他
不相關(guān)部分。 - 2000年的時(shí)候竖伯,Roy Fielding在他的博士論文中介紹和定義了表示層狀態(tài)轉(zhuǎn)化的概念因宇。Fielding的論文中闡述了REST規(guī)則的參考了1994年開(kāi)始
的"HTTP對(duì)象模型",這些原則用于設(shè)計(jì)HTTP 1.1和統(tǒng)一資源標(biāo)識(shí)符(Uniform Resource identifier, URI)標(biāo)準(zhǔn)察滑。REST明確了要如何去設(shè)計(jì)一個(gè)
Web應(yīng)用的參考動(dòng)作:一個(gè)網(wǎng)絡(luò)的網(wǎng)絡(luò)資源(虛擬狀態(tài)機(jī)),用戶通過(guò)應(yīng)用程序擇資源標(biāo)識(shí)符(如http://www.example.com/articles/21)和
資源操作(如GET或POST),將資源轉(zhuǎn)換到最終用戶的手中進(jìn)行使用户盯。
Tip(Vue兼容360、ie瀏覽器)
一莽鸭、關(guān)于babel-polyfill
- 說(shuō)明: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)境,主要用于對(duì)ES6不支持的新語(yǔ)法不支持的瀏覽器)蒋川;
- 安裝:npm install --save babel-polyfill撩笆;
- 配置:module.exports = { entry: ["babel-polyfill", "./src/main.js"] };
- main.js中配置:import 'babel-polyfill' //放在最頂部,確保全面加載夕冲。
二、關(guān)于es6-promise
- 說(shuō)明:若在項(xiàng)目中使用了ES6 promise對(duì)象歹鱼,它在Chrome、Safari瀏覽器下可以正常運(yùn)行,但在360兼容模式南片、IE內(nèi)核中不支持;
- 安裝:npm install es6-promise薪缆;
- 配置:在main.js中加入require('es6-promise').polyfill()伞广,用于在node或?yàn)g覽器中支持ES6 與CommonJS拣帽。