【ARTS】01_12_左耳听风-20190128~20190203
ARTS:
- Algrothm: leetcode算法題目
- Review: 閱讀并且點評一篇英文技術文章
- Tip/Techni: 學習一個技術技巧
- Share: 分享一篇有觀點和思考的技術文章
Algorithm
【leetcode】824. Goat Latin
https://leetcode.com/problems/goat-latin/
1)problem
S給出一個句子,由用空格分隔的單詞組成。每個單詞只包含小寫字母和大寫字母。
我們想將句子轉換成“?山羊拉丁語”??(一種類似于拉丁語的化妝語言)。
山羊拉丁文規則如下:
- 如果一個單詞以元音開頭(a,e,i,o或u),則追加"ma"?到單詞的末尾。
例如,'apple'這個詞變成'applema'。
? - 如果一個詞以輔音開頭(即不是元音),刪除第一個字母并將其附加到最后,然后添加"ma"。
例如,這個詞"goat"?變成了"oatgma"。
? - 'a'?在每個單詞的末尾添加一個字母,每個單詞的索引在句子中,從1開始。
例如,第一個單詞被"a"添加到結尾,第二個單詞被"aa"添加到結尾,依此類推。
返回代表從S?Goat Latin?轉換成的最后一句。?
返回代表從S Goat Latin 轉換成的最后一句。
Example 1:
Input: "I speak Goat Latin" Output: "Imaa peaksmaaa oatGmaaaa atinLmaaaaa"Example 2:
Input: "The quick brown fox jumped over the lazy dog" Output: "heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaaaaa azylmaaaaaaaaa ogdmaaaaaaaaaa"2)answer
1.用unordered_set判斷單詞開頭是不是元音。
2.一邊找完整的單詞,一邊對單詞里的字母進行換位置操作。時間復雜度只需要線性。
3.把末尾要添加的字母直接做成一個字符串,每次循環改一下即可。
4.S增加了詞末字符串之后i的下標所指的位置會改變。
3)solution
#include "pch.h" #include <iostream> #include <string> #include <vector> #include <unordered_set> #include <algorithm> using std::vector; using std::string; using std::unordered_set;class Solution { public:string toGoatLatin(string S) {unordered_set<char> vowel = { 'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U' };int i = 0;string sub;sub = "maa";// 遍歷輸入的字符串長度while (i < S.length()){int j = i + 1; // 單詞的首位int isvowel = vowel.count(S[i]); //如果找到值等于k的元素,則返回1,否則返回0。char tmp = S[i]; // 存儲單詞的首個字符while ((S[j] != ' ') && (j < S.length())) // 每個單詞內的處理,如果字符不是空格以及沒有超過字符串的總長度{if (!isvowel) { S[j - 1] = S[j]; } // 如果以輔音(即不是元音)開頭,就把第二位的值變成第一位的值,字符串左移j++;}if (!isvowel) S[j - 1] = tmp; // 把以輔音(即不是元音)開頭的第一位放到單詞末尾S.insert(j, sub); // 這個單詞后插入maai = j + sub.length() + 1; // 計算新插入的字符數目sub = sub + 'a'; // 按照單詞個數,依次加a,第一個單詞加maa,那么第二次就應該是maaa}return S;} }; int main() {Solution solution;string str = "The quick brown fox jumped over the lazy dog";string ret = solution.toGoatLatin(str);}Review
【漏洞挖掘】Sleeping stored Google XSS Awakens a $5000 Bounty
1)場景
找Google漏洞
2)問題難點
找Google的存儲型XSS漏洞
3)解決問題的方法
Google云提供60天 免費試用
"><img src=x onerror=javascript:alert(1);> …4)方法細節
[BugBounty] Sleeping stored Google XSS Awakens a $5000 Bounty
https://www.cnblogs.com/17bdw/p/10372402.html
Tip
【安全開發】MFC的CEdit使用(Edit Control控件)
1)場景
MFC-開發小工具
2)問題難點
CEdit使用(Edit Control控件)
3)解決思路
- 編輯框只讀
屬性 Read Only等于 True,就有了只讀效果
- 密碼框
屬性 Password 等于 True,就有了密碼效果
4)方法細節
CEdit使用(Edit Control控件)
https://www.cnblogs.com/17bdw/p/10350818.html
Share
【業務】應急響應工具開發-C++獲取當前所有進程的完整路徑
1)場景
C++獲取當前所有進程的完整路徑
2)問題難點
遍歷進程,獲取進程的完整路徑
3)解決思路
CreateToolhelp32Snapshot()
Process32First()
OpenProcess()
GetProcessImageFileName()
GetLogicalDriveStrings()
QueryDosDevice()
4)方法細節
C++獲取當前所有進程的完整路徑
https://www.cnblogs.com/17bdw/p/10355793.html
轉載于:https://www.cnblogs.com/17bdw/p/10348712.html
總結
以上是生活随笔為你收集整理的【ARTS】01_12_左耳听风-20190128~20190203的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [导入]流氓软件案落定 “很棒小秘书”终
- 下一篇: 02 算术、字符串与变量(1)