wingS

栈特点使用:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是...

亡梦爱人 提交于 2021-02-02 06:01:33
题目: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 /* * * @param {string} s * @return {boolean} */ var isValid = function (s) { if (s==" "||s=="" ){ return true ; } let stack = []; let left = ["{","(","[" ]; let right = ["}",")","]" ]; for (let i =0;i<s.length;i++ ){ if (left.indexOf(s[i])>-1 ){ stack.push(s[i]); } else if (s[i] === " " ){ continue ; } else { if (stack.pop() != left[right.indexOf(s[i])] ){ return false ; } } } if (stack.length!=0 ){ return false ; } return true ; }; 这里主要是使用了栈的先进后出的特点,遍历s字符串,当遇到左括号的时候就将左括号进栈

攒一台“Linus Torvalds 牌”电脑 | Linux 中国

做~自己de王妃 提交于 2020-10-08 08:21:15
前两天,Linus Torvalds 透露了他更新了其主力电脑,在与 ZDNet 的对话采访中,Torvalds 介绍了他的这台最新的电脑的配置。 来源: https:// linux.cn/article-12261- 1.html 作者:Steven J. Vaughan-nichols 译者:Xingyu.Wang 前两天,Linus Torvalds 透露了他更新了其主力电脑, 据称编译内核时快了三倍 。虽然 Torvalds 用来编程时喜欢用戴尔 XPS 开发者版笔记本电脑 ,但他还有一台开发工作站,最近他将它升级为基于 AMD 锐龙 Threadripper 3970x 高速处理器。这是 Linus 15 年来第一次换用 AMD 的 CPU。 作为世界上最著名的程序员之一、Linux 操作系统之父以及 Git 的缔造者,他的一举一动都会引来开源社区的兴趣,因此大家对这台新电脑的配置也相当感兴趣。 在与 ZDNet 的对话采访中,Torvalds 介绍了他的这台最新的电脑的配置。 “Linus Torvalds 牌”电脑配置清单 以下列出这台电脑的具体配置,大家感兴趣的可以按图索骥。 CPU:AMD 锐龙 Threadripper 3970X 锐龙 Threadripper 3970X 并不便宜,而且它是目前最快的 CPU。它是一款性能强劲的工作站处理器,多达 32 核

攒一台“Linus Torvalds 牌”电脑

情到浓时终转凉″ 提交于 2020-10-05 17:55:29
前两天,Linus Torvalds 透露了他更新了其主力电脑, 据称编译内核时快了三倍 。虽然 Torvalds 用来编程时喜欢用戴尔 XPS 开发者版笔记本电脑 ,但他还有一台开发工作站,最近他将它升级为基于 AMD 锐龙 Threadripper 3970x 高速处理器。这是 Linus 15 年来第一次换用 AMD 的 CPU。 作为世界上最著名的程序员之一、Linux 操作系统之父以及 Git 的缔造者,他的一举一动都会引来开源社区的兴趣,因此大家对这台新电脑的配置也相当感兴趣。 在与 ZDNet 的对话采访中,Torvalds 介绍了他的这台最新的电脑的配置。 “Linus Torvalds 牌”电脑配置清单 以下列出这台电脑的具体配置,大家感兴趣的可以按图索骥。 CPU:AMD 锐龙 Threadripper 3970X 锐龙 Threadripper 3970X 并不便宜,而且它是目前最快的 CPU。它是一款性能强劲的工作站处理器,多达 32 核 64 线程的多线程处理能力以及 144MB 高速缓存。 主板:技嘉 Aorus TRX40 Master 对于顶级 CPU,你当然需要最好的主板技嘉 Aorus RX40 Master。它使用的是 16+3 相英飞凌供电,考虑到新 CPU 恐怖的规格,技嘉还给主板的供电覆盖上了加强散热模块,模块以密集的散热鳍片加热管为主。

【星云测试】Wings-面向企业级的单元测试用例自动编码引擎最新发布

烂漫一生 提交于 2020-08-04 11:52:41
2020年7月30日,星云测试在TiD2020质量竞争力大会正式发布最新产品“Wings-企业级单元用例自动编码引擎”。这是国际首个面向复杂软件并且可以进行单元测试用例全自动编码的高端专业软件测试产品,目前处于国际上商业化程度最高、技术最领先的水平。 众所周知,软件缺陷发现得越晚,其处理费用就越呈几何激增,因此测试左移概念已经成为趋势。但单元测试面临的最大问题是:单元测试用例编写工作量巨大,极端情况下与开发工作量比达到1:1,甚至更高,造成大量成本损耗。 星云测试研发的Wings(目前商用产品支持c/c++程序)产品,可以对被测试程序进行全局分析和深度理解,随后由内置算法程序实现计算机全自动的单元测试编码。Wings确保自动编写的代码无语法、语义错误。目前已经完成了多方商用落地验证。这种用计算机智能算法全自动产生的测试编码去验证开发人员编写的源代码逻辑输入输出对错的高端测试模式,不需要编写测试用例、测试驱动程序或桩调用代码,极大减少了编写单元测试的巨大工作量。是未来软件测试领域最为璀璨的“明珠”技术。 Wings大幅超越国外相关产品性能,可以对高复杂度的程序参数进行深度解析,比如c++类、模板类、数组、结构体、指针、链表以及任意复杂结构的层级嵌套,同时对于面向对象的程序特性以及常用的容器库能够完美识别和支持。对于一些void*、函数指针

继承、实现、依赖、关联、聚合、组合的联系与区别

你。 提交于 2020-05-07 08:46:36
继承 指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性; 实现 指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性; 依赖 可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用; 关联 他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量; 聚合 聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象

SOLID原则(OOD&OOP)

一世执手 提交于 2020-04-28 11:26:06
SOLID原则是面向对象编程和面向对象设计的头五大原则。学习及应用这五大原则可以构建一个易于维护和扩展的应用程序,我们一起看看到底是那五大原则。 S--单一责任原则(SRP) --Single Responsibility Principle O--开放封闭原则(OCP)-- Open-Closed Principle L--里式替换原则(LSP)-- Liskov Substitution Principle I –- 接口分离原则(ISP)--Interface Segregation Principle D–-依赖倒置原则(DIP)-- Dependency Inversion Principle 一、 单一责任原则(SRP) 单一责任原则指出当需要修改某个类的时候原因有且只有一个。也就是说一个类应该只负责一件事情。 当这个类需要去做其他的事情的时候,就需要分解这个类。如果把多个功能放在一个类中要它负责, 那么各个功能之间会形成关联,改变其中一个功能可能会牵连其他的功能的改变,这样有需要花费时间和人力对其他功能的改变进行测试,保证其他功能的完整。 Ex: 一个有关长方形的类,长、宽、面积。后来需要增加正方形,就继续使用长方形的类,使用的时候长=宽。这一种情况违背了SRP原则,一个类只负责一件事情,这个时候应该新建一个正方形的类。 二、 开放封闭原则(OCP)

经典设计模式——抽象工厂模式

本小妞迷上赌 提交于 2020-04-23 01:46:01
抽象工厂模式用于创建一系列相关或者相互依赖对象,而无需指定具体的类。和工厂模式一样,它包括以下角色: Factory:抽象的工厂,声明工厂方法,该方法返回一个Product类型的对象 ConcreteFactory:工厂的实现,重写了工厂方法,并返回ConcreteProduct实例 Product:工厂生产出来的抽象产品 ConcreteProduct:具体的产品 考虑如下场景:KFC出售2种套餐,一种经济型包含鸡翅和可乐,另一种高档型,包含鸡腿和咖啡。用于只要指出需要的套餐名字就可以获得相应的食品,这种情况下,工厂模式就不再适用了。因为工厂模式每个子工厂只负责生产相互独立的产品,它不适用于一次创建一个“产品套餐”,而抽象工厂模式正是在此方面进行了改进: //产品族1:KFC食品 abstract class KFCFood { public abstract void show(); } class Chicken extends KFCFood { public void show() { System.out.println("鸡腿+1"); } } class Wings extends KFCFood { public void show() { System.out.println("鸡翅+1"); } } //产品族2:KFC饮料 abstract class

如果你是老板,你会不会踢了这样的员工?

自闭症网瘾萝莉.ら 提交于 2020-04-11 07:34:41
有个好朋友ZS,是技术总监,昨天问我: “有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点想裁了他。沈老师,我应不应该踢了他?” 听了ZS的问题,先是一惊,然后我讲一个故事。 画外音:最近讲了不少Dota的故事。 2017年,Dota2 DAC世界总决赛,IG以3:0零封OG夺冠。彼时,世界冠军Burning,带领新人boboka和xxs举起了冠军奖杯, 天才少年boboka和xxs逐渐声名鹊起 。同年,IG在TI7世界杯拿到了第五名的好成绩,随后,老将Burning宣布退役。 画外音: Burning,Dota上古大神,曾经带领EH十冠,DK九冠军,曾冠名英雄敌法师,以及道具林肯法球; DAC,可以理解为Dota2的俱乐部的甲级联赛; TI,可以理解为Dota2的世界杯,冠军奖金1000W美金; 2018年, boboka和xxs已经成长为世界顶级3,4号位 。但是,在同年的TI8世界杯中,IG居然未能小组出线,成为最先被淘汰的中国俱乐部。 接下来, Burning以老板身份,组建了星辰战队Team Aster : 首先,以400W买下了当时顶尖1号位Sylar,顶尖5号位Fenrir; 接着,试训潜力中单2号位Dstones; 最后,2017拿下DAC最后一冠,视Burning为前辈,良师,益友,兄弟的

精准测试白皮书-2019最新版

匆匆过客 提交于 2019-12-04 22:12:23
精准测试诞生的背景   现代社会是建立在各种以计算机为基石的软件技术基础之上的。随着日新月异的需求变化,软件系统越来越复杂。很多人觉得软件开发才是重要环节,但实际上,无法对大型软件进行有效的质量把控,就无法真正构建与维护大型软件。——系统中任何一个错误都可能导致整个系统的崩溃,造成无法弥补的损失,系统的任何一个微小的修改都可能引入新的缺陷导致维护困难重重。   然而,如何从极端庞大复杂的系统中迅速及时地找到故障所在,却是行业的一大难点。目前国内软件测试基本处于两种状态:一是绝大多数企业采用功能(黑盒)测试,二是部分对软件产品有高可靠性要求的关键软件,企业会使用代码级的白盒测试工具,但这两种传统的测试办法在目前的软件智能化趋势下,更像是用竹竿打怪兽,完全没办法应付的。   功能(黑盒)测试,测试者看不到程序内部逻辑结构,这种办法对软件可靠性要求不高的应用来讲问题不是很大,但是对于大型金融保险、工业软件、航天军工等关键系统就意味着时刻携带隐形的巨大风险。为此,功能测试后期需要极高的人力投入才能完成复杂逻辑的用例分析和设计。然而对于黑盒测试来说,由于我们无法获知内部的逻辑构造,程序越大,杀虫剂效应越明显。而行业内当作银弹的自动化测试,当自动化程序本身规模扩大以后,它的维护本身就存在了很严重的问题。   代码级(白盒)测试工具一般重点应用在研发阶段的单元测试上,满足了客户的部分高可靠性需求