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的更多相关文章

  1. 【ARTS】01_21_左耳听风-201900401~201900407

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  2. 【ARTS】01_20_左耳听风-20190325~20190331

    zz## ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 ...

  3. 【ARTS】01_19_左耳听风-20190318~20190324

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  4. 【ARTS】01_18_左耳听风-20190311~20190317

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  5. 【ARTS】01_17_左耳听风-20190304~20190310

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  6. 【ARTS】01_16_左耳听风-20190225~20190303

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  7. 【ARTS】01_14_左耳听风-20190211~20190217

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  8. 【ARTS】01_10_左耳听风-20190114~20190120

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  9. 【ARTS】01_09_左耳听风-20190107~20190113

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

随机推荐

  1. MT【58】反演圆和极线极点和谐统一

    解答:如图 评:1.反演圆及其性质介绍: 评2:此题的源头是1995年全国卷压轴题,这里用极线极点的相关性质也可以处理: 注:用相关点法很容易得到轨迹.

  2. MT【35】用复数得到的两组恒等式

    特别的,当$r\rightarrow1^{-}$时有以下两个恒等式: 第二个恒等式有关的自主招生试题参考博文MT[31]傅里叶级数为背景的三角求和 评:利用两种展开形式得到一些恒等式是复数里经常出现的 ...

  3. LOJ #2434. 「ZJOI2018」历史(LCT)

    题意 click here 题解 我们首先考虑答案是个什么样的东西, 不难 发现每个点可以单独计算它的贡献. 令每个点 \(i\) 崛起次数为 \(a_i\) . 假设一个点子树的 \(\sum a_ ...

  4. 【ARC063E】Integers on a tree

    Description 给定一棵\(n\)个点的树,其中若干个点的权值已经给出.现在请为剩余点填入一个值,使得相邻两个点的差的绝对值恰好为1.请判断能否实现,如果能,请将方案一并输出. Solutio ...

  5. luogu2336 喵星球上的点名 (SA+二分答案+树状数组)

    离散化一下然后把姓名串和询问串都放一起做SA 和bzoj3277串类似地,满足某一询问的后缀(就是和这个询问对应的后缀的LCP>=这个询问长度的后缀)的排名也是一个区间,把这个区间二分出来即可 ...

  6. 算法--java实现将数字转换成人民币大写(迅雷面试题)

    今天去迅雷面试,是个数字转换成人民币的算法题: public class Rmb { /** * 人民币的基本信息和操作 * * @author soyoungboy * @version 1.0 * ...

  7. bzoj3209 花神的数论题——数位dp

    题目大意: 花神的题目是这样的 设 sum(i) 表示 i 的二进制表示中 1 的个数.给出一个正整数 N ,花神要问你 派(Sum(i)),也就是 sum(1)—sum(N) 的乘积. 要对1000 ...

  8. js的append拼接html丢失css样式解决

    htmlApp += "<li id='leftli"+lunci+"'>"; htmlApp += "<span id='left ...

  9. 【洛谷P1972】HH的项链 离线+树状数组

    题目大意:静态查询序列区间颜色数. 题解:对于一个查询区间 [l , r] ,若有两个相同颜色的点在这个区间中,则总是取下标靠近端点 r 的颜色计入答案贡献.对于每个下标,记录下在这个下标之前,且距离 ...

  10. 【洛谷P1018】乘积最大 dp+高精度

    题目大意:给定一个 N 个数组成的串,可以在串中插入 M 个乘号,求乘积最大是多少.N <= 40 阶段:前 i 个数用了 j 个乘号. 仅用阶段可以表示出一个状态,因此状态转移方程为 \(dp ...