javascript的一些常用算法
来源:互联网 发布:山东工商学院网络党课 编辑:程序博客网 时间:2024/05/17 02:48
1: 判断一个单词是否是回文?
回文是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环。其实重要的考察的就是对于reverse的实现。其实我们可以利用现成的函数,将字符串转换成数组,这个思路很重要,我们可以拥有更多的自由度去进行字符串的一些操作。
function checkPalindrom(str) {
return str == str.split('').reverse().join('');
}
2: 去掉一组整型数组重复的值
比如输入: [1,13,24,11,11,14,1,2]
输出: [1,13,24,11,14,2]
主要考察个人对Object的使用,利用key来进行筛选。
/**
* unique an array
**/
let unique = function(arr) {
let hashTable = {};
let data = [];
for(let i=0,l=arr.length;i<l;i++) {
if(!hashTable[arr[i]]) {
hashTable[arr[i]] = true;
data.push(arr[i]);
}
}
return data
}
module.exports = unique;
3: 统计一个字符串出现最多的字母
给出一段英文连续的英文字符窜,找出重复出现次数最多的字母
输入 : afjghdfraaaasdenas
输出 : a
这里需要是统计重复次数。
function findMaxDuplicateChar(str) {
if(str.length == 1) {
return str;
}
let charObj = {};
for(let i=0;i<str.length;i++) {
if(!charObj[str.charAt(i)]) {
charObj[str.charAt(i)] = 1;
}else{
charObj[str.charAt(i)] += 1;
}
}
let maxChar = '',
maxValue = 1;
for(var k in charObj) {
if(charObj[k] >= maxValue) {
maxChar = k;
maxValue = charObj[k];
}
}
return maxChar;
}
module.exports = findMaxDuplicateChar;
4: 排序算法
4.1:冒泡排序算法就是依次比较大小,小的的大的进行位置上的交换。
function bubbleSort(arr) {
for(let i = 0,l=arr.length;i<l-1;i++) {
for(let j = i+1;j<l;j++) {
if(arr[i]>arr[j]) {
let tem = arr[i];
arr[i] = arr[j];
arr[j] = tem;
}
}
}
return arr;
}
module.exports = bubbleSort;
4.2:快速排序
function quickSort(arr) {
if(arr.length<=1) {
return arr;
}
let leftArr = [];
let rightArr = [];
let q = arr[0];
for(let i = 1,l=arr.length; i<l; i++) {
if(arr[i]>q) {
rightArr.push(arr[i]);
}else{
leftArr.push(arr[i]);
}
}
return [].concat(quickSort(leftArr),[q],quickSort(rightArr));
}
module.exports = quickSort;
5: 随机生成指定长度的字符串
实现一个算法,随机生成指制定长度的字符窜。
比如给定 长度 8 输出 4ldkfg9j
function randomString(n) {
let str = 'abcdefghijklmnopqrstuvwxyz9876543210';
let tmp = '',
i = 0,
l = str.length;
for (i = 0; i < n; i++) {
tmp += str.charAt(Math.floor(Math.random() * l));
}
return tmp;
}
module.exports = randomString;
- javascript的一些常用算法
- javascript中的一些常用的数组算法总结
- 常用的一些算法
- 常用的一些算法
- 一些常用的javascript技巧
- 一些常用的Javascript代码
- 常用的一些JavaScript脚本
- 常用的一些JavaScript脚本
- javascript的一些常用例子
- 一些常用的JAVAscript代码
- 常用的一些javascript代码
- 一些常用的javascript命令
- Javascript 常用的一些功能
- CRM 常用的一些JavaScript
- JavaScript常用的一些东西
- javascript常用的一些开发模式(常用)
- 一些常用的排序算法
- 一些常用的算法集
- git 工具——学习使用(1)
- iOS transform(平移、旋转、缩放)
- hdu 6082 度度熊与邪恶大魔王 类完全背包
- DNS与DNS服务器
- File
- javascript的一些常用算法
- HTML5手机端网页开发
- 本次考试总结(2017.8.17上午考试)(noip2004真题)
- 机器学习——Python(五)
- 学习Spring AOP编程的一些备忘录
- oracle-体系结构
- Linux安装mariadb二进制版本
- 在股票技术指标里,EMA和SMA 的区别
- bios开机过程