关闭

工厂模式与抽象工厂模式

在软件设计中,工厂模式和抽象工厂模式是比较常用的两种模式。下面来对其分别进行介绍。一、工厂模式工厂方法模式继承了简单工厂模式的优点,也弥补了简单工厂模式的缺点,符合了“开闭原则”。如果不清楚什么是简单工厂模式,不用担心,接下来所讲的内容不会涉及简单工厂模式。工厂模式的基本原则是:工厂父类负责创建产品对象的公共接口,而工厂子类来负责生产具体的产品对象。 是不是有点抽象,下面我们直接来看一个例子。上图...
阅读(345) 评论(0)

linux中文件的批量创建与删除/改名

初学linux,虽有图形界面但是主要操作还是通过命令行,而且有些操作通过命令行的方式比之图形界面会更加方便,就比如批量的处理,很容易便能使用一行命令就可批量对文件进行操作。主要是使用通配符与正则表达式的方式来实现。 文件的批量创建(比如创建文件名为1.txt到10.txt):$ touch {1..10}.txt如果是按字母顺序也可以,那便将{1.。10}改成类似{a..z}或者{A..Z}的形式...
阅读(110) 评论(0)

hihoCoder #1032 : 最长回文子串

这就是最典型的manacher算法题,听起来高大上,而且也很难说清楚,但是实际上并不难,就相当于数学的推理,推出一个公式即可直接解出。题目如下: 时间限制:1000ms 单点时限:1000ms 内存限制:64MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。 这一天,他们遇到了一连串的字符串,于是...
阅读(71) 评论(0)

hihoCoder #1558 : H国的身份证号码I

题目: 描述 H国的身份证号码是一个N位的正整数(首位不能是0)。此外,由于防伪需要,一个N位正整数是合法的身份证号码当且仅当每位数字都小于等于K,并且任意相邻两位数字的乘积也小于等于K。 例如对于K=5, 101、211、210等都是合法的号码,而106、123、421等都是非法的号码。 给定一个正整数N以及K,请从小到大输出所有合法的号码。 输入 两个...
阅读(62) 评论(0)

用js实现自动打字动画效果

准备自己写一个博客,就先做了一个自动打字的页面demo,见到过用纯css做的,但是灵活性不强,只能一个个打字打完就完了,而用js的话可以来来回回反复地打字,效果更好。 放一张效果图,演示网址:https://codepen.io/yinyoupoet/pen/RZQzVN?editors=1010 思路其实很简单,用setInterval()控制一个循环,每隔一段时间显示出一个字,然后对其显示的...
阅读(156) 评论(0)

hihoCoder #1015 : KMP算法

题目: 输入 第一行一个整数N,表示测试数据组数。 接下来的N*2行,每两行表示一个测试数据。在每一个测试数据中,第一行为模式串,由不超过10^4个大写字母组成,第二行为原串,由不超过10^6个大写字母组成。 其中N<=20 输出 对于每一个测试数据,按照它们在输入中出现的顺序输出一行Ans,表示模式串在原串中出现的次数。 样例输入 5 HA HAHAHA WQN...
阅读(48) 评论(0)

hihoCoder #1014 : Trie树

题目: 原题链接:https://hihocoder.com/problemset/problem/1014题解思路: 题目上边已经讲的比较清楚了,建立一棵tril树,同时在创建树的时候,每经过一个节点就给它值加一,也就是说在建立树的时候就顺便记录下了以当前为前缀的单词的个数。代码如下:#include #define length 11 using namespa...
阅读(65) 评论(0)

android相对布局中@id和@+id的区别(原理)

@id和@+id的区别,网上讲的主要是@id是引用已经存在的控件,而@+id则是声明一个新的id。 但是在相对布局中,layout_below="@id/xxx"和 layout_below="@+id/xxx"似乎在显示上没什么区别,而事实上是存在细微不同的。用一个例子来讲<View android:layout_below="@+id/view1" android:layout...
阅读(162) 评论(1)

android中动态给EditText获得焦点并弹起软键盘的方法详解

获得焦点的方法edittext.setFocusable(true); edittext.setFocusableInTouchMode(true); edittext.requestFocus();但仅仅这样不会自动弹出软键盘 网上说的弹出软键盘的方法如下,但是亲测无效(miui8)getWindow().setSoftInputMode(WindowManager.LayoutParams.S...
阅读(203) 评论(0)

网页版井字游戏(TicTacToe)人机对战的制作(附思路和源码)

井字游戏的规则是:在一个井字格子的棋盘里下棋,横竖斜一旦三子连子,则胜。而事实上,遵循一定的规则,该游戏便能保证不败,即至少是平局。 若是两人对战,则仅需要判断“胜负平”三种状态即可,比较简单,而人机对战的难点便在于让机器立于不败之地的下棋规则。下面会重点讲解不败的思路。先放一张游戏截图,程序演示与源码下载可以去:戳我演示或下载代码 在此先规定电脑一定是先手,如果电脑不是先手的话算法需要另外设计...
阅读(1966) 评论(4)

网页版番茄时钟的制作——Pomodoro Clock

番茄时钟的功能想必大家都熟悉,简单点说就是工作时间+休息时间。 该网页就实现了这两个功能,可以自定义工作时间与休息时间,且允许暂停。先放张效果图: 效果演示:戳我进入演示 解释一下,session length表示工作时长,break length表示休息时长,若要看div填充效果则建议将session length改成1来观看,效果比较明显。下面附上代码,里面关键部分有较详细的注释,可以...
阅读(452) 评论(0)

制作网页版简易计算器(Calculator)

网页版计算器的制作比想象中要来的容易,界面上只需固定计算器面板的宽高和按钮的宽高即可。先放张图: 代码下载与演示:https://codepen.io/yinyoupoet/pen/oeewWw讲一下设计思路: 首先,将按键分成四种类型——数字与符号、等于、AC、CE。 Ans是保存上一次结果的,在这里点了没用。 如果点了数字,就显示在上面的input text框(以下称输出框)内,并追加...
阅读(577) 评论(2)

HTML+CSS,让div在屏幕中居中(水平居中+垂直居中)方法总结

最近写网页经常需要将div在屏幕中居中显示,遂记录下几个常用的方法,都比较简单。 水平居中直接加上标签即可,或者设置margin:auto;当然也可以用下面的方法下面说两种在屏幕正中(水平居中+垂直居中)的方法 放上示范的html代码: MAIN 方法...
阅读(456) 评论(0)

FCC——Spinal Tap Case

题目 将字符串转换为 spinal case。Spinal case 是 all-lowercase-words-joined-by-dashes 这种形式的,也就是以连字符连接所有小写单词。 spinalCase(“This Is Spinal Tap”) 应该返回 “this-is-spinal-tap”。 spinalCase(“thisIsSpinalTap”)应该...
阅读(229) 评论(0)

FCC——Convert HTML Entities

题目: 样例输出: 解题思路:使用正则匹配,用replace替换即可代码:function convert(str) { var regObj = { "&":"&amp;", "":"&gt;", '"':"&quot;", "'":"&apos;" }; var reg = /[&<>"']/g; var a...
阅读(265) 评论(0)
47条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:20331次
    • 积分:648
    • 等级:
    • 排名:千里之外
    • 原创:44篇
    • 转载:3篇
    • 译文:0篇
    • 评论:12条
    最新评论