js算法(日常练习)
返回最长重复字符串
function tp21(i){
var arr=i.split('');
var num=0;
var maxstr1='';
var maxstr2='';
var a;
a=arr[0]
var strend;
for(var i=0;i<arr.length;i++){
if(arr[i]==a){
num++;
}
else{
strend=i;
maxstr2=arr.slice(strend-num,strend);
if(maxstr2.length>maxstr1.length){
maxstr1=maxstr2;
}
a=arr[i];
num=1;
}
}
if(maxstr2.length==0){
console.log('最长长度0')
}
else{
console.log(maxstr2);
}
}
首字母大写
function tp26(str){
var arr = str.split(' ');
for(var i = 0;i<arr.length;i++){
arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].slice(1);
}
console.log(arr.join(' '));
}
冒泡排序
function maopao(arr){
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1]
arr[j+1] = temp;
}
}
}
console.log(arr);
}
生成完全二叉树
function isCompleteTree(root)
{
if(!root)
return true;
var flag = 0;
var queue = [];
queue.push(root);
while(queue.length != 0)
{
var node = queue.shift();
if(!node.left)
flag = 1;
else if(node.left && flag == 0)
queue.push(node.left);
else if(node.left && flag == 1)
return false;
if(!node.right)
flag = 1;
else if(node.right && flag == 0)
que.push(node.right);
else if(node.right && flag == 1)
return false;
}
return true;
}
判断是否为平衡二叉树
function maxDepthOfTree(node)
{
if(!node)
return 0;
return Math.max(maxDepthOfTree(node.left),maxDepthOfTree(node.right))+1;
}
function isBalanced(node)
{
if(!node)
return true;
var left = maxDepthOfTree(node.left);
var right = maxDepthOfTree(node.right);
if(Math.abs(left-right) > 1)
return false;
return isBalanced(node.left) && isBalanced(node.right);
}
|