【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); // 这个单词后插入maa
i = 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
【ARTS】01_12_左耳听风-20190128~20190203的更多相关文章
- 【ARTS】01_21_左耳听风-201900401~201900407
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_20_左耳听风-20190325~20190331
zz## ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 ...
- 【ARTS】01_19_左耳听风-20190318~20190324
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_18_左耳听风-20190311~20190317
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_17_左耳听风-20190304~20190310
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_16_左耳听风-20190225~20190303
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_14_左耳听风-20190211~20190217
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_10_左耳听风-20190114~20190120
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_09_左耳听风-20190107~20190113
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
随机推荐
- Leetcode 268.缺失数字 By Python
给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数. 示例 1: 输入: [3,0,1] 输出: 2 示例 2: 输入: [9,6,4,2 ...
- 12 Zabbix Item类型之Zabbix JMX类型
点击返回:自学Zabbix之路 12 Zabbix Item类型之Zabbix JMX类型 JMX 全称是Java Management Extensions,即Java管理扩展.Java程序会开放一 ...
- 自学Aruba7.1-Aruba安全认证-WPA2-PSK认证(web页面配置)
点击返回:自学Aruba之路 自学Aruba7.1-Aruba安全认证-WPA2-PSK认证(web页面配置) 步骤1 建立AP Group,命名为test-group 步骤2 将AP加入到AP G ...
- android 开发中 sdk 无法更新
现在用到android 的多个版本适配 , 换了个新环境 , 重新配置了android 的开发环境,哪想到遇到了很多小问题. 今天又遇到了 android sdk manager 无法更新的问题. ...
- 【BZOJ2425】[HAOI2010]计数(组合数学)
[BZOJ2425][HAOI2010]计数(组合数学) 题面 BZOJ 洛谷 题解 很容易的一道题目. 统计一下每个数位出现的次数,然后从前往后依次枚举每一位,表示前面都已经卡在了范围内,从这一位开 ...
- module 'scipy.misc' has no attribute 'toimage',python
anaconda环境下: 错误:python 命令行运行出错:module 'scipy.misc' has no attribute 'toimage' 解决:打开Anaconda prompt,输 ...
- Java -- JDBC 学习--数据库连接池
JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: 在主程序(如servlet.beans)中建立数据库连接. 进行sql操作 断开数据库连接. 这种模式开 ...
- Android 屏幕手势滑动中onFling()函数的技巧分析
关于如何处理手势操作以及那四个基本固定的顺序我就不讲解了,这里直接跳到我们获得瞬间滑动后回调onFling()这个抽象函数时,应该如何根据参数比较准确的判断滑动方向.如果你没有前面的基础知识,你可以去 ...
- css样式——选择器(三)
https://www.cnblogs.com/haiyan123/p/7552235.html 1.怎么找到标签 2.如何操作标签的对象 一.css概述 CSS是Cascading Style Sh ...
- Codeforces Round #516 (Div. 2, by Moscow Team Olympiad) D. Labyrinth
http://codeforces.com/contest/1064/problem/D 向上/向下加0,向左/右加1, step = 0,1,…… 求的是最少的步数,所以使用bfs. step=k ...