力C演算法JS:1544. 整理字串
題目描述
給你一個由大小寫英文字母組成的字串 s 。
一個整理好的字串中,兩個相鄰字元 s[i] 和 s[i+1],其中 0
若 s[i] 是小寫字元,則 s[i+1] 不可以是相同的大寫字元。
若 s[i] 是大寫字元,則 s[i+1] 不可以是相同的小寫字元。
請你將字串整理好,每次你都可以從字串中選出滿足上述條件的 兩個相鄰 字元並刪除,直到字串整理好為止。
請返回整理好的 字串 。題目保證在給出的約束條件下,測試樣例對應的答案是唯一的。
注意:空字串也屬於整理好的字串,儘管其中沒有任何字元。
示例1
輸入:s = "leEeetcode"
輸出:"leetcode"
解釋:無論你第一次選的是 i = 1 還是 i = 2,都會使 "leEeetcode" 縮減為 "leetcode" 。
示例2
輸入:s = "abBAcC"
輸出:""
解釋:存在多種不同情況,但所有的情況都會導致相同的結果。例如:
"abBAcC" --> "aAcC" --> "cC" --> ""
"abBAcC" --> "abBA" --> "aA" --> ""
解題思路
一, JS API
Math.abs(); // 獲取絕對值
String.prototype.charCodeAt() // 獲取字元 ASCII 碼值
字元的 ASCII 碼值
'a'.charCodeAt() //97
'A'.charCodeAt() //65
'b'.charCodeAt() //98
'B'.charCodeAt() //66
∵ 同一小寫字母與大寫字母相減 為 ±32
∴ 當s[i]與s[i-1]是同一字母,且只有一個是大寫時:
Math.abs(s[i].charCodeAt()-s[i-1].charCodeAt())===32
佇列入棧
var makeGood = function (str) {
// 佇列 q 存輸入,棧 s 存輸出,都用陣列表示
let q = str.split(''),s = [];
// 迭代佇列
while (q.length) {
// 出隊字元
let curS = q.shift()
// 出隊字元ASCII
let curV = curS.charCodeAt()
// 棧尾字元ASCII
let preV = s[s.length - 1] && s[s.length - 1].charCodeAt()
// 如果出隊字元與棧尾字元 符合題意需要刪除的條件
if (preV && Math.abs(curV - preV) === 32) {
// 出棧
s.pop()
} else {
// 入棧
s.push(curS)
}
}
// 輸出
return s.join('')
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4687/viewspace-2797186/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JS陣列字串方法整理JS陣列字串
- 力扣#43 字串相乘(C++)力扣字串C++
- js排序演算法整理JS排序演算法
- C# 字串操作--減少垃圾回收壓力C#字串
- 【每週例題】力扣 C++ 字串相乘力扣C++字串
- C#解析JSON字串總結C#JSON字串
- 我的力扣演算法1370-上升下降字串力扣演算法字串
- c# 對JSON字串排序(KEY/VALUE)C#JSON字串排序
- C++實現蠻力最近對演算法C++演算法
- 高效字串匹配演算法——BM 演算法詳解(C++)字串匹配演算法C++
- js 整理JS
- C字串字串
- 字串(C/C++)字串C++
- JS json字串轉物件、物件轉字串JSON字串物件
- js iframe 整理JS
- c/c++面試整理C++面試
- 力扣oj-字串相乘力扣字串
- xml字串轉JSON字串XML字串JSON
- 字串和陣列常用方法整理字串陣列
- 學習筆記——字串方法整理筆記字串
- Swift 整理(三)——字串、集合型別Swift字串型別
- Python字串操作、函式整理Python字串函式
- js字串方法JS字串
- C#字串C#字串
- AngularJS整理(1.0.0)AngularJS
- 常用JS方法整理JS
- js常用方法整理JS
- nodejs模組整理NodeJS
- fastjson整理思路ASTJSON
- 演算法學習記錄二(C++)--->字串空格替換演算法C++字串
- js物件轉json字串物件JSON字串
- JSON.NET框架實現C#物件和JSON字串的轉換JSON框架C#物件字串
- C++整理1C++
- C++整理2C++
- Asp.net C# 把 Datatable轉換成JSON 字串ASP.NETC#JSON字串
- 字串演算法字串演算法
- 字串與JSON字串JSON
- JS去掉字串空格JS字串