ARTS Week 06

Algorithm

1021. 删除最外层的括号

有效括号字符串为空 ("")、"(" + A + ")" 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 "(()(()))" 都是有效的括号字符串。
如果有效字符串 S 非空,且不存在将其拆分为 S = A+B 的方法,我们称其为原语(primitive),其中 A 和 B 都是非空有效括号字符串。
给出一个非空有效字符串 S,考虑将其进行原语化分解,使得:S = P_1 + P_2 + ... + P_k,其中 P_i 是有效括号字符串原语。
对 S 进行原语化分解,删除分解中每个原语字符串的最外层括号,返回 S 。

示例 1:
输入:"(()())(())"
输出:"()()()"
解释:
输入字符串为 "(()())(())",原语化分解得到 "(()())" + "(())",
删除每个部分中的最外层括号后得到 "()()" + "()" = "()()()"。
示例 2:
输入:"(()())(())(()(()))"
输出:"()()()()(())"
解释:
输入字符串为 "(()())(())(()(()))",原语化分解得到 "(()())" + "(())" + "(()(()))",
删除每隔部分中的最外层括号后得到 "()()" + "()" + "()(())" = "()()()()(())"。
示例 3:
输入:"()()"
输出:""
解释:
输入字符串为 "()()",原语化分解得到 "()" + "()",
删除每个部分中的最外层括号后得到 "" + "" = ""。

提示:
S.length <= 10000
S[i] 为 "(" 或 ")"
S 是一个有效括号字符串

思路

解决这题时刚开始的思路是这样的:
首先要将字符串进行原语化分解,得到多个原语字符串,然后再去除每个原语字符串中最外层的括号,将这些字符串拼接起来。

其中关键点就在于怎么将字符串进行分解,参考如下步骤:
首先设置一个计数器c和一个临时字符数组,遍历字符串,当碰到左括号时加一,碰到右括号时减一,将当前字符串加到临时字符数组中,当计数器c的值为0时,就可以确定当前已经位于一个原语字符串的末尾,也就可以将临时字符数组中的内容拷贝到结果字符串中,拷贝时略过数组中第一个和最后一个字符。

这个思路可以解决问题,但是每次找到原语字符串后还要再进行一次拷贝动作,从而增加了复杂度,因此接下去要考虑怎么把后面的拷贝动作去除。
其想法就是在遍历字符串S时直接将不是最外层括号的字符添加到结果字符数组中。
因此这里的关键问题转换成了怎么检测出当前的括号是不是最外层括号,其实思路和前面分解字符串的思路一致,就是在遍历字符串的时候碰到左括号计数器c值加一,碰到右括号计数器c值减一。不过在修改计数器c的值之前,需要先进行判断,即,当前字符为左括号且计数器c的值为0时,当前左括号为最外层括号。当前字符为右括号且计数器c的值为1时,当前右括号是最外层括号。

代码

class Solution {
    public String removeOuterParentheses(String S) {
        char[] result = new char[S.length()];

        int count = 0;
        int index = 0;
        for (int i = 0; i < S.length(); i++) {
            char c = S.charAt(i);

            if ((c == '(' && count++ > 0) ||
                    (c == ')' && count-- > 1)) {
                result[index++] = c;
            }
        }

        return new String(result, 0, index);
    }
}

Review

Stop, Think, Code — Iterate
这篇文章说开发者不应该一开始就陷入代码实现的细节中,而应该在多做思考,然后再动手实现,并且同时辅之以单元测试之类的手段保证功能的正确性。作者的观点还是很明确的,但是感觉缺少一些具体的步骤说明,并且也没有具体的例子,令人感觉有点空洞,不能给人以很好的指引作用。

Tip

这周发现了一款免费的文件比对工具DiffMerge
,虽然功能和界面相对BCompare都略微逊色,但是作为一个文件比对工具还是值得一用的。
安装后可以像BCompare一眼更直接在右键菜单中使用:

image.png

比对界面如下:
image.png

Share

这周因为面试、准备入职和到新公司报道的原因,感觉也没有什么好分享的,还是说一说最近找工作自己的一些体会吧。
先说说大公司吧,因为面试过腾讯、百度之类的公司,我的感觉就是:首先,对于基础知识的掌握要非常牢固,比如java、数据结构和算法之类的,并且偏向于问原理。一个点会先从表面问起,然后慢慢深入,到原理、为什么这样做之类的。其次就是问的问题如果你直说不会的话,面试官会立马转向另一个问题的。再呢,我觉得比较好的就是,面对注入算法之类的题目,面试官会慢慢引导你回答,还有一些问题不知道的时候面试官也会告诉你答案。感觉去这些公司面试的过程本身也是很舒服的,能够学到不少东西。
然后就是一些小公司,问的问题就相对不会那么深入了,但是感觉很看重项目经历,会抓住你简历的项目经历一一盘问,所以在简历上的项目经历一定都要好好的准备一番,涉及的一些知识点、碰到的一些问题之类的。
再就是不管什么公司,都会问的一些问题,比如说自我介绍啊、离职原因之类的,针对这些问题,感觉还是需要了解面试官期望什么样的回答吧,在面试前不妨转换到面试官的角度想想,然后再做准备,这样的话结果大概会更好吧。
总的来说呢,如果想要进bat之类的公司,平时一定要积累基础知识,不然的话希望是不很大的。然后呢,自己的简历肯定要好好的修改,把自己最熟悉,最擅长的一些写在简历上,自己不熟悉的不要在简历上展示。再就是对于一些一定会问的问题一定要准备好,自我介绍、项目介绍、离职原因之类的。介绍的时候也一定要说自己熟悉的,不要把自己接触过的东西一股脑全说出来,这样给自己挖的坑就太深了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,084评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,623评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,450评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,322评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,370评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,274评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,126评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,980评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,414评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,599评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,773评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,470评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,080评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,713评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,852评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,865评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,689评论 2 354

推荐阅读更多精彩内容

  • 带着娃在小区附近散步,突然走过来一个年轻小伙子,让我填个问卷,说是事关他的工作业绩,让我帮帮忙。我心想,填个单子举...
    长余有联阅读 519评论 4 3
  • 坚持,这个词对我们来说应该不陌生,从我们刚出生可能就会接触这个词,而且会在不同时期的出现在我们脑海里,一直陪伴我们...
    7a3145004a34阅读 243评论 0 0
  • 8.不会关爱vs.付出和关心 作为父母,尽管你的父母给你的关爱不尽如人意,你现在的工作是确保你孩子的情感海绵永远不...
    诗意人生_36da阅读 242评论 1 2
  • 相信是需要勇气的。相信一个陌生人需要勇气,相信自己需要勇气,相信你的团队更需要勇气。因为只有心中那份笃定才能相信和...
    汇鑫财税_郭迎勃阅读 691评论 0 1