//前端常见的算法题
//Q1 判断字符串或句子是否为回文?(回文例如:abcba,字符串会形成一个回路,颠倒过来是一样)
function isHui(str){
var arr_str=str.split("")
var new_str=arr_str.reverse().join("")
console.log(new_str)
if(str==new_str){
alert(str+"就是一个回文")
}else{
alert(str+"不是回文")
}
}
//Q2 数组去重
function uniqueArr(arr){
var new_arr=[],ojb={}
ojb[arr[a]].push(type)
new_arr.push(arr[a])
}
}
return new_arr;
}
//Q3 统计一个字符串种最多的字母
function getMost(str){
if(str.length==1){
return str;
}
var mostStr="",time=0,ojb={}
for(var a=0;a<str.length;a++){
if(!ojb[str.charAt(a)]){
ojb[str.charAt(a)]=1
}else{
ojb[str.charAt(a)]+=1
}
}
for(var item in ojb){
if(ojb[item]>time){
time=ojb[item]
mostStr=item
}
}
return mostStr;
}
//Q4 排序算法,在快速排序中一定要记得设置一个最终的循环终止的条件
function arrSort(arr){
for(var a=0;a<arr.length;a++){
for(var j=a+1;j<arr.length;j++){
if(arr[a]>arr[j]){
var tmp=""
tmp=arr[a]
arr[a]=arr[j]
arr[j]=tmp
}
}
}
return arr;
}
function fastSort(arr){
if(arr.length<=1){
return arr;
}
var leftArr=[],rightArr=[],q=arr[0]
for(var a=1;a<arr.length;a++){
if(arr[a]>q){
rightArr.push(arr[a])
}else{
leftArr.push(arr[a])
}
}
return [].concat(fastSort(leftArr),[q],fastSort(rightArr))
}
//Q6:生成随机字符串
function ranStr(n){
var str="absbcityoepqlvm12345678"
var ranS=""
for(var a=0;a<n;a++){
var i=Math.floor(Math.random()*(str.length-1))
ranS+=str.charAt(i)
}
return ranS;
}
//Q7:求数组中最大值和最小值的差
function maxDiff(arr){
var max=arr[0],min=arr[0];
for(var a=1;a<arr.length;a++){
if(arr[a]>max){
max=arr[a]
}else{
min=arr[a]
}
}
return max-min;
}
//Q1 判断字符串或句子是否为回文?(回文例如:abcba,字符串会形成一个回路,颠倒过来是一样)
function isHui(str){
var arr_str=str.split("")
var new_str=arr_str.reverse().join("")
console.log(new_str)
if(str==new_str){
alert(str+"就是一个回文")
}else{
alert(str+"不是回文")
}
}
//Q2 数组去重
function uniqueArr(arr){
var new_arr=[],ojb={}
for(var a=0;a<arr.length;a++){
let type=typeof(arr[a]) //判断每项的类型
ojb[arr[a]]=ojb[arr[a]]||[];//如果存在就用存在的,如果不存在就赋值一个空数组
if(ojb[arr[a]].indexOf(type)<0){ojb[arr[a]].push(type)
new_arr.push(arr[a])
}
}
return new_arr;
}
//Q3 统计一个字符串种最多的字母
function getMost(str){
if(str.length==1){
return str;
}
var mostStr="",time=0,ojb={}
for(var a=0;a<str.length;a++){
if(!ojb[str.charAt(a)]){
ojb[str.charAt(a)]=1
}else{
ojb[str.charAt(a)]+=1
}
}
for(var item in ojb){
if(ojb[item]>time){
time=ojb[item]
mostStr=item
}
}
return mostStr;
}
//Q4 排序算法,在快速排序中一定要记得设置一个最终的循环终止的条件
function arrSort(arr){
for(var a=0;a<arr.length;a++){
for(var j=a+1;j<arr.length;j++){
if(arr[a]>arr[j]){
var tmp=""
tmp=arr[a]
arr[a]=arr[j]
arr[j]=tmp
}
}
}
return arr;
}
function fastSort(arr){
if(arr.length<=1){
return arr;
}
var leftArr=[],rightArr=[],q=arr[0]
for(var a=1;a<arr.length;a++){
if(arr[a]>q){
rightArr.push(arr[a])
}else{
leftArr.push(arr[a])
}
}
return [].concat(fastSort(leftArr),[q],fastSort(rightArr))
}
//Q6:生成随机字符串
function ranStr(n){
var str="absbcityoepqlvm12345678"
var ranS=""
for(var a=0;a<n;a++){
var i=Math.floor(Math.random()*(str.length-1))
ranS+=str.charAt(i)
}
return ranS;
}
//Q7:求数组中最大值和最小值的差
function maxDiff(arr){
var max=arr[0],min=arr[0];
for(var a=1;a<arr.length;a++){
if(arr[a]>max){
max=arr[a]
}else{
min=arr[a]
}
}
return max-min;
}