js----去掉字符串str中,连续重复的地方 的2中方法

在学习百度前端学院js课程的时候碰到这样一个练习  “去掉字符串str中,连续重复的地方”,

我自己做法是:将字符串变为数组A,创建一个空数组B,对数组A进行循环,再在循环里面拿A的数组元素一个一个和B的最后一个数组元素比,不一致的元素放进数组B中

然后再将数组B用字符串的形式表现出来,自己的代码如下:

 1 function removeRepetition(str) {
 2             var result = "",  //空的结果
 3                 strA =str.split(""), //将字符串进行分割,变成数组
 4                 strB = [],  //创建空的字符串
 5                 j=0;
 6
 7               for(var i=0;i<strA.length;i++){   //对分割好,已变成数组的字符串A进行循环
 8                  if(strA[i] !=strB[j]){     //判断循环到的A的元素和B的最后一位元素是否相等(因为B是一个空数组)
 9                     j++;              //j一定要先加1
10                     strB[j]=strA[i];
11                  }
12               }
13            result=(strB.toString()).replace(/,/g,"");
14
15             return result;
16         }
17
18 // 测试用例
19
20
21 console.log(removeRepetition("aaa")); // ->a
22 console.log(removeRepetition("abbba")); // ->aba
23 console.log(removeRepetition("aabbaabb")); // ->abab
24 console.log(removeRepetition("")); // ->
25 console.log(removeRepetition("abc")); // ->abc
26 console.log(removeRepetition("aaaaaaaaaaaabsssssssssssssscddddddddddddddddd")); // ->abc

然后网上找了下别人的写法,写的更好,代码如下:

 1  function removeRepetition(str){
 2         var result="";
 3         len=str.length;    //一定要现将str的长度先取出来,因为在循环的时候每次切割字符串是会改变字符串长度的
 4         for(var i=0 ; i<len;i++){
 5             if(str[0]==str[1]){
 6                 str=str.slice(1);
 7             }else{
 8                 result=result+str[0];
 9                 str=str.slice(1);
10             }
11         }
12         return result;
13     }
18 // 测试用例
19
20
21 console.log(removeRepetition("aaa")); // ->a
22 console.log(removeRepetition("abbba")); // ->aba
23 console.log(removeRepetition("aabbaabb")); // ->abab
24 console.log(removeRepetition("")); // ->
25 console.log(removeRepetition("abc")); // ->abc
26 console.log(removeRepetition("aaaaaaaaaaaabsssssssssssssscddddddddddddddddd")); // ->abc


原文地址:https://www.cnblogs.com/zyc-zsxbh/p/9327364.html

时间: 2024-08-30 10:53:12

js----去掉字符串str中,连续重复的地方 的2中方法的相关文章

js去掉字符串中的所有空格

1.使用js去掉字符串中的所有空格 1.1.定义一个去空格函数方法 function Trim(str,is_global){ var result; result = str.replace(/(^\s+)|(\s+$)/g,""); if(is_global.toLowerCase()=="g") { result = result.replace(/\s/g,""); } return result; } 1.2. 使用此方法去空格,如下

去除字符串中连续重复的字符

目的:把字符串中连续重复的字符赐除掉. 输入:序列:kkkhan888shioobo66 正确的返回结果应该是:hanshibo 思路解析 1 使用JAVA正则表达式,匹配出连续相同的字符或数字. 2 查找出匹配出来的序列,并取出来放到list里面 3 对list进行排序.把重复的序列排在前面.(该步可省略) 4找出连续重复的子序列,并把这些连续重复的子序列用空(字字符串)替换. 5 返回输出. code public class Test { public static void main(S

js去掉字符串前后空格的五种方法(转)

出处:http://www.2cto.com/kf/201204/125943.html 第一种:循环检查替换[javascript]//供使用者调用  function trim(s){  return trimRight(trimLeft(s));  }  //去掉左边的空白  function trimLeft(s){  if(s == null) {  return "";  }  var whitespace = new String(" \t\n\r")

Python统计列表中的重复项出现的次数的方法

前言 在实际工作和学习中,经常会遇到很多重复的数据,但是我们又必须进行统计,所及这里简单介绍一下统计列表中重复项的出现次数的简单方法. 实例 本文实例展示了Python统计列表中的重复项出现的次数的方法,是一个很实用的功能,适合Python初学者学习借鉴.具体方法如下: #方法1: mylist = [1,2,2,2,2,3,3,3,4,4,4,4] myset = set(mylist)  #myset是另外一个列表,里面的内容是mylist里面的无重复 项 for item in myset

Js去掉字符串最后一个逗号

我们在开发中,经常会遇到拼接字符串的时候,但是拼接后字符串会多出一个无用的字符,例如逗号(,),而在js中并没有像C#一样的TrimEnd()方法,所以我们只能通过截取或者正则表达式等方式去去掉最后一个字符,我这的例子是去掉最后一个逗号,其他的跟这个类似 js代码: var str="1,2,3,4,"; var reg=/,$/gi;//此处是正则 str=str.replace(reg,""); 这样我们就达到了去掉最后一个逗号的办法!

js 去掉字符串前后空格

转自: http://www.cnblogs.com/mingforyou/p/3930638.html 第一种:循环检查替换 //供使用者调用 function trim(s){ return trimRight(trimLeft(s)); } //去掉左边的空白 function trimLeft(s){ if(s == null) { return ""; } var whitespace = new String(" \t\n\r"); var str =

使用java语言,将字符串中连续重复出现的字母变成“出现次数“+字母的格式

今天在简书上看到这样一道有趣的算法题: 解题思路 首先定义一个变量element,默认是字符串的第一个字符.以element为基准元素,去判断某个字符是否重复.然后再去定义一个变量count去记录重复的次数,初始值应该为1. 然后我们去遍历整个字符串,应该从第1号位置的字符开始遍历.如果当前字符等于element,就说明该字符在当前字符串中出现过,已经重复了.那么count就应该自增. 如果当前字符不等于element,就说明上一个字符连续的重复次数已经计算完毕,可以进行拼接操作.接下来我们就可

js去掉字符串中的空格

今天改问题的时候发现,replace方法不能直接替换,(逗号) 经过测试: 这个方法还是可行的 只是记录一下,哈哈 var replaceStr = ','; var symbol = $(".mmark").eq(4).text(); $(".mmark").eq(4).text(symbol.replace(new RegExp(replaceStr,'gm'),''));

js去掉字符串前后空格的五种方法

第一种:循环检查替换[javascript]//供使用者调用  function trim(s){  return trimRight(trimLeft(s));  }  //去掉左边的空白  function trimLeft(s){  if(s == null) {  return "";  }  var whitespace = new String(" \t\n\r");  var str = new String(s);  if (whitespace.i