本文链接:https://blog.csdn.net/shiliang97/article/details/101155502 2-9 彩虹瓶 (20 分) ?
本篇博文意在对前几章中遗漏的,本人觉得有意思的习题当独拿出来练练手。 1、习题2-4,求逆序对,时间复杂度要求Θ(nlgn) 定义:对于一个有n个不同的数组A, 当i<j时,存在A[i]>A[j],则称对偶(i, j)为A的一个逆序对。 譬如:<2,3,8,6,1>有5个逆序对。 解题思路:归并排序的思想:逆序对的数量=左区间的逆序对+右区间的逆序对+合并的逆序对 代码如下: 1 #include <iostream> 2 #include <vector> 3 using namespace std
本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。
代码清单2-9 ULONGLONG Count1InAInteger(ULONGLONG n) { ULONGLONG iNum = 0; while(n !
在以下部分[1]中,我们将研究基于用户可以定义的特定模式过滤文本或字符串。 有时,在过滤文本时,您希望根据给定条件或使用可匹配的特定模式来指示输入文件中的某些行或字符串行。 5 $0.55 7 Onions 5 $0.45 然后,您想在价格大于 2 美元的食品上标明 (*) 符号,可以通过运行以下命令来完成: awk '/ *$[2- 在此示例中,我们使用了两种模式: 第一个: / *$[2-9].[0-9][0-9] */ 获取食品价格大于 2 美元的行 第二个: /$[0-1].[0-9][0-9] */ 查找食品价格低于 2 美元的行 第二种模式只是打印输入文件 food_prices.list 中食品价格低于 2 美元的其他行。 可以通过两种方式解决它: 使用 printf 命令,这是一种漫长而无聊的方法,使用以下命令: $ awk '/ *$[2-9]\.[0-9][0-9] */ { printf "%-10s %-10s
什么是路由模式? 路由模式是 CUCM 用来确定将呼叫路由到何处的一串数字,例如,一个简单的路由模式可以是一个像 812-555-4001 这样的数字,路由模式具有与该路由模式关联的路由列表。 在 CUCM 中,丢弃通配符可以这样使用:9.[2-9]XXXX,这个通配符表达式可以翻译为“用户拨打本地电话时排除九个”。 您可能已经注意到,此模式序列利用了我们尚未讨论的通配符:方括号符号。 括号通配符 括号 ([]) 表示数字必须在括号之间的指定范围内, 回想一下我们之前的例子,9.[2-9]XXXX。在该示例中,数字 2 到 9 括在括号中。 问号通配符 在前面的示例中,我们查看了数字 9.[2-9]XXXX,回想一下,4 X 意味着用户可以拨打四个号码,每个号码都是 0-9,但是,如果我们想让他们拨打任意数量的号码怎么办? 问号 匹配前面的数字或通配符值的零次或多次出现,我们之前的示例可以替换为以下通配符:9.[2-9]X?。
2021-09-16:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
2)([-\/\._])(29)$)|(^([2-9][0-9][0][48])([-\/\._])(0? 2)([-\/\._])(29)$)|(^([2-9][0-9][2468][048])([-\/\._])(0? 2)([-\/\._])(29)$)|(^([2-9][0-9][13579][26])([-\/\._])(0? 2)([-\/\._])(29)$)|(^([2-9][0-9][0][48])([-\/\._])(0? 2)([-\/\._])(29)$)|(^([2-9][0-9][2468][048])([-\/\._])(0?
[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(11|0?[469])([-\/\._])(30|[12][0-9]|0? [1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(0?2)([-\/\._])(2[0-8]|1[0-9]|0? 2)([-\/\._])(29)$)|(^([2-9][0-9][0][48])([-\/\._])(0? 2)([-\/\._])(29)$)|(^([2-9][0-9][2468][048])([-\/\._])(0? 2)([-\/\._])(29)$)|(^([2-9][0-9][13579][26])([-\/\._])(0?
; } 验证输入的是否是汉字: var han = /^[\u4e00-\u9fa5]{2,9}$/; //设置汉字的正则表达式:2-9个汉字 if(! han.test(uname.value)){ //验证输入的内容是否是2-9个汉字 alert("请输入汉字,不少于2个!") ; } 拓展:JavaScript test() 方法 test() 方法用于检测一个字符串是否匹配某个模式。 如果字符串中有匹配的值返回 true ,否则返回 false。
2)([-\\/\\._])(29)$)|(^([2-9][0-9][0][48])([-\\/\\._])(0? 2)([-\\/\\._])(29)$)|(^([2-9][0-9][2468][048])([-\\/\\._])(0? 2)([-\\/\\._])(29)$)|(^([2-9][0-9][13579][26])([-\\/\\._])(0? 2)([-\\/\\._])(29)$)|(^([2-9][0-9][0][48])([-\\/\\._])(0? 2)([-\\/\\._])(29)$)|(^([2-9][0-9][2468][048])([-\\/\\._])(0?
练习2-9 整数四则运算 本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。 输入格式: 输入在一行中给出2个正整数A和B。
[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(11|0?[469])(-)(30|[12][0-9]|0? [1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(0?2)(-)(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)(-)(0? 2)(-)(29)$)|(^([2-9][0-9][0][48])(-)(0?2)(-)(29)$)|(^([1][89][2468][048])(-)(0? 2)(-)(29)$)|(^([2-9][0-9][2468][048])(-)(0?2)(-)(29)$)|(^([1][89][13579][26])(-)(0? 2)(-)(29)$)|(^([2-9][0-9][13579][26])(-)(0?
如果我们修改一下参数, (x**2+y**2-9)**3-x**2*9*y**3 就是这样的效果 ? 然后有是比较瘦小的心 ((2*x)**2+y**2-9)**3-(2*x)**2*10*y**3 ? 还有瘦到不能看的心: ((7*x)**2+y**2-9)**3-(7*x)**2*10*y**3 ? 也有肥到夹门的心: ((0.7*x)**2+y**2-9)**3-(0.7*x)**2*10*y**3 ?
列表2-9显示了一个为线程策略设置严苛模式(StrictMode)的样例。 列表2-9 设置严苛模式(StrictMode)的线程策略 view plain print ? .penaltyLog() .build()); Builder类使得设置变得非常easy,Builder函数定义全部策略都返回Builder对象,从而这些函数能像列表2- 列表2-11 仅在调试模式设置严苛模式(StrictMode) view plain print ? 严苛模式(StrictMode)非常不错,只是在Android 2.3之前的版本号上该模式不工作。 假设你将严苛模式(StrictMode)封装在一个类里,并捕捉这个错误,当严苛模式(StrictMode)无效时,你能忽略它。
最近的一两个月里,我一直在研究各类的模式:设计模式、架构模式、容器模式,以及其它一些特定领域的模式(如并行计算模式)等等。 经历了一番买书、读论文、读代码,我发现了以前对于模式的理解不够深刻。 设计模式的组织 在《设计模式》一书中,引入的概念是『设计模式空间』,在这里它们被分为了三大类: 创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式 其划分的两条准分别是: 目的准则,用来完成什么工作;范围准则, 所以,我们就来到了元素模式,依据的它也是来自于一本书《元素模式》。 元素模式:设计模式的模式 模式是来源于对惯用法的总结,而诸如于元素模式则是对于设计模式的提取,即模式中的模式。
朋友觉得我为了几块钱这么墨迹,付完钱拉着我就走了,问我:“你说的什么模式怎么回事?” 我说超市收银系统就是很好的策略系统,就是一个典型策略模式。 多收了2块5,心疼死我了,我慢慢给你讲! ? 策略模式 策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 策略模式相当于"可插入式(Pluggable)的算法"。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。 策略模式和简单工厂模式的结合:把分支判断放到环境角色中。 模式讲解 策略模式功能:把具体算法从具体业务处理中独立 策略模式与if-else语句:多个if-else出现考虑使用策略模式 算法的平等性:策略算法是形同行为的不同实现 谁来选择具体策略算法:客户端
什么是路由模式? 路由模式是 CUCM 用来确定将呼叫路由到何处的一串数字,例如,一个简单的路由模式可以是一个像 812-555-4001 这样的数字,路由模式具有与该路由模式关联的路由列表。 该符号本质上是说“在给定的数字序列上应用指定的模式”。 在 CUCM 中, 通配符可以显示为 X,但是,我们可以使用其他几个路由模式通配符。 CUCM 中通配符的目的 是使路由模式更简洁且更易于阅读,毕竟,唯一的选择是为每个可能的电话号码编写数千个路由模式!让我们看一些例子,以使其更清楚。 在 CUCM 中,丢弃通配符可以这样使用:9.[2-9]XXXX,这个通配符表达式可以翻译为“用户拨打本地电话时排除九个”。 您可能已经注意到,此模式序列利用了我们尚未讨论的通配符:方括号符号。 问号通配符 在前面的示例中,我们查看了数字 9.[2-9]XXXX,回想一下,4 X 意味着用户可以拨打四个号码,每个号码都是 0-9,但是,如果我们想让他们拨打任意数量的号码怎么办?
代理模式的定义 代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 代理模式的优缺点 优点 代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用; 代理对象可以扩展目标对象的功能; 代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度,增加了程序的可扩展性 缺点 代理模式会造成系统设计中类的数量增加 在客户端和目标对象之间增加一个代理对象,会造成请求处理速度变慢; 增加了系统的复杂度; 代理模式的结构与实现 模式的结构 代理模式的主要角色如下。 ; } } 代理模式的应用场景 程代理,这种方式通常是为了隐藏目标对象存在于不同地址空间的事实,方便客户端访问。
[2-9]\d{ 2}[2-9](?!11)\d{ 6}$/, 'cs-CZ': /^(\+?420)? ?[1-9][0-9]{ 2} ? [2-9]{ 1}\d{ 3,4}\-?\d{ 4}$/, 'pt-PT': /^(\+?351)? ((1(2([0-9])|6([2-9])|88|99))|(9((?!5)[0-9])))([0-9]{ 7})$/, 'zh-CN': /^(\+?0?86\-?)?