算法
CentreSeek
这个作者很懒,什么都没留下…
展开
-
翻转字符串(js)
function reverseString(str) {var arr=new Array();arr=str.split("");var brr=new Array();brr=arr.reverse();str=brr.join("");return str;}reverseString("hello");原创 2018-06-10 17:52:56 · 232 阅读 · 0 评论 -
去除数组中任意多个值(js)
实现一个 destroyer 函数,第一个参数是初始数组,后跟一个或多个参数。从初始数组中删除与这些参数具有相同值的所有元素。function destroyer(arr) {// Remove all the valuesvar arr1=new Array();var arr2=new Array(); arr1=arguments[0];for (var i = 1; i &...原创 2018-06-11 11:45:01 · 807 阅读 · 0 评论 -
数组排序并插入值
先给数组排序,然后找到指定的值在数组的位置,最后返回位置对应的索引。举例:where([1,2,3,4], 1.5) 应该返回 1。因为1.5插入到数组[1,2,3,4]后变成[1,1.5,2,3,4],而1.5对应的索引值就是1。同理,where([20,3,5], 19) 应该返回 2。因为数组会先排序为 [3,5,20],19插入到数组[3,5,20]后变成[3,5,19,20],而19...原创 2018-06-11 11:45:35 · 318 阅读 · 1 评论 -
位移密码算法(js)
下面我们来介绍著名的凯撒密码Caesar cipher,又叫移位密码。移位密码也就是密码中的字母会按照指定的数量来做移位。一个常见的案例就是ROT13密码,字母会移位13个位置。由'A' ↔ 'N', 'B' ↔'O',以此类推。写一个ROT13函数,实现输入加密字符串,输出解密字符串。所有的字母都是大写,不要转化任何非字母形式的字符(例如:空格,标点符号),遇到这些特殊字符,就跳过它们。func...原创 2018-06-11 11:45:26 · 4732 阅读 · 0 评论 -
求取斐波那契数(java)
斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波那契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就是斐波那契数列由 0 和 1 开始,之后的斐波那契数...原创 2018-06-11 11:45:38 · 180 阅读 · 0 评论 -
插入排序(Java实现)
插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。算法描述一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:从第一个元素开始,该元素可以认为已经被排序;取出下一个元素,在已经排序的元素序列中从后向前扫描;如果该元素(已排序)大于新元素,将...原创 2018-06-30 16:22:48 · 231 阅读 · 0 评论 -
冒泡排序(java实现)
冒泡排序冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。算法描述比较相邻的元素。如果第一个比第二个大,就交换它们两个;对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一...原创 2018-06-28 18:37:21 · 196 阅读 · 0 评论 -
选择排序(Java实现)
选择排序选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。算法描述n个记录的直接选择排序可经过n-1趟直接选择排序得到有序结果。具体算法描述如下:初始状态:无序区为R[1..n]...原创 2018-06-28 18:59:11 · 133 阅读 · 0 评论 -
归并排序(Java实现)
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。算法描述把长度为n的输入序列分成长度为n/2的子序列;对着两个子序列进行归并排序;将两个排序好的序列合并成一个最终的排序序列;...原创 2018-07-15 18:44:34 · 191 阅读 · 0 评论 -
扑克牌存储容器以及一些功能算法
实现功能:记录牌库中所有牌的rank(牌面)和suit(花色)在牌库中对牌进行删减统计剩余牌数小功能部件代码牌库容器:package circle;import java.util.HashMap;import java.util.HashSet;import java.util.Map;import java.util.Set;public class...原创 2018-08-16 14:21:36 · 335 阅读 · 0 评论 -
删除数组中特定值(js)
删除数组中的所有的假值。在JavaScript中,假值有false、null、0、""、undefined 和 NaN。function bouncer(arr) {// Don't show a false ID to this bouncer.var arr1=new Array();var arr2=new Array();arr2=arr.filter(function (nam...原创 2018-06-11 11:45:05 · 528 阅读 · 1 评论 -
数组查询(js)
如果数组第一个字符串元素包含了第二个字符串元素的所有字符,则函数返回true。举例,["hello", "Hello"]应该返回true,因为在忽略大小写的情况下,第二个字符串的所有字符都可以在第一个字符串找到。["hello", "hey"]应该返回false,因为字符串"hello"并不包含字符"y"。["Alien", "line"]应该返回原创 2018-06-11 11:45:09 · 839 阅读 · 0 评论 -
数组截断(js)
返回一个数组被截断n个元素后还剩余的元素,从索引0开始截断。function slasher(arr, howMany) {// it doesn't always pay to be firstvar arr1=new Array();if(arr.length==howMany){ return arr1;}else{ arr1=arr.splice(0,howM...原创 2018-06-11 11:44:33 · 1276 阅读 · 0 评论 -
阶乘算法(js)
function factorialize(num) { if(num==0){ return 1; }else{ for (var i = num; i >1; i--) { num*=(i-1); }return num;}}factorialize(5);原创 2018-06-10 17:53:35 · 2071 阅读 · 0 评论 -
回文算法(js)
function palindrome(str) {// Good luck!var arr=new Array();var brr=new Array();for (var i = 0; i <50; i++) {str=str.replace(/[^a-zA-Z0-1]/i,"");}str= str.toLowerCase();arr=str.split("");br...原创 2018-06-10 17:54:17 · 214 阅读 · 0 评论 -
寻找最长的单词(js)
返回提供的句子中最长的单词的长度。返回值应该是一个数字。function findLongestWord(str) {var arr=new Array();arr=str.split(" "); var compare=0; var len=0;for (var i = 0; i <arr.length; i++) { len=arr[i].length; ...原创 2018-06-10 17:55:04 · 1466 阅读 · 0 评论 -
设置首字母大写(js)
返回一个字符串,确保字符串的每个单词首字母都大写,其余部分小写。像'the'和'of'这样的连接符同理。function titleCase(str) {var arr=new Array();arr=str.split(" ");for (var i = 0; i < arr.length; i++) { var string=arr[i]; string=strin...原创 2018-06-10 17:55:40 · 3815 阅读 · 2 评论 -
寻找数组中的最大值(js)
在右边的大数组中包含了4个小数组,请分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新的数组。提示:你可以用for循环来迭代数组,并通过arr[i]的方式来访问数组的每个元素。function largestOfFour(arr) {// You can do this!for (var i = 0; i < arr.length; i++) { var newArr=...原创 2018-06-10 17:56:47 · 1075 阅读 · 0 评论 -
确认末尾字符(js)
检查一个字符串(str)是否以指定的字符串(target)结尾。如果是,返回true;如果不是,返回false。function confirmEnding(str, target) {// "Never give up and good luck will find you."// -- Falcorvar arr1=str.split("");var arr2=target.split...原创 2018-06-10 17:58:19 · 521 阅读 · 0 评论 -
重复操作算法(js)
循环拼接一个指定的字符串 num次,如果num是一个负数,则返回一个空字符串。function repeat(str, num) {// repeat after meif(num==0){ return "";}else{ var string=""; for (var i = 0; i <num; i++) { string=stri...原创 2018-06-10 17:59:21 · 581 阅读 · 0 评论 -
字符串截取(js)
如果字符串的长度比给定的参数num长,则把多余的部分用...来表示。切记,插入到字符串尾部的三个点号也会计入字符串的长度。然而,如果指定的参数num小于或等于3,则添加的三个点号不会计入字符串的长度。function truncate(str, num) {// Clear out that junk in your trunkif(num<=3){ str=str.slice(...原创 2018-06-10 17:59:49 · 248 阅读 · 0 评论 -
数组分割(js)
编写一个函数,把一个数组arr按照指定的数组大小size分割成若干个数组块。例如:chunk([1,2,3,4],2)=[[1,2],[3,4]];chunk([1,2,3,4,5],2)=[[1,2],[3,4],[5]];function chunk(arr, size) { var arr1=new Array(); for (var i = 0; i < Math.cei...原创 2018-06-10 18:00:40 · 7696 阅读 · 0 评论 -
极简代码用Python实现单例模式
介绍意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决:一个全局使用的类频繁地创建与销毁。何时使用:当您想控制实例数目,节省系统资源的时候。如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建。关键代码:构造函数是私有的。应用实例: 一个党只能有一个书记。 Windows 是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同...原创 2018-08-30 17:38:24 · 268 阅读 · 0 评论