欢迎访问 如意编程网!

如意编程网

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

【ARTS】01_12_左耳听风-20190128~20190203

发布时间:2024/7/5 编程问答 4 豆豆
如意编程网 收集整理的这篇文章主要介绍了 【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的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得如意编程网网站内容还不错,欢迎将如意编程网推荐给好友。