风君子博客

  • 首页
  • 业界
  • 前端
  • 运维
  • 建站
  • 软件
  • 生活
  • 后端
  • 创投
  • 运营
  • 程序人生
    • 影视
    • 游戏
    • 句子
    • bootstrap4教程
    • 资源
    • 日期计算器
  • 其他
    • 说说
    • 关于本站
  1. 首页
  2. 前端
  3. 正文

【FCC】No repeats please

2018年11月7日 6667点热度 0人点赞 0条评论

题目:

把一个字符串中的字符重新排列生成新的字符串,返回新生成的字符串里没有连续重复字符的字符串个数.连续重复只以单个字符为准

例如, aab 应该返回 2 因为它总共有6中排列 (aab, aab, aba, aba, baa, baa), 但是只有两个 (aba and aba)没有连续重复的字符 (在本例中是 a).

示例:

permAlone("aab") 应该返回一个数字.
permAlone("aab") 应该返回 2.
permAlone("aaa") 应该返回 0.
permAlone("aabb") 应该返回 8.
permAlone("abcdefa") 应该返回 3600.
permAlone("abfdefa") 应该返回 2640.
permAlone("zzzzzzzz") 应该返回 0.

思路:

首先,把第一个字符和其后面的字符一一交换。

接着,固定第一个字符,求后面所有字符的排列。这个时候我们仍把后面的所有字符分成两部分:后面字符的第一个字符,以及这个字符之后的所有字符。然后把第一个字符逐一和它后面的字符交换。

去重的全排列就是从第一个数字起每个数分别与它后面非重复出现的数字交换。

代码:

<script type="text/javascript">
	function permAlone(str) {
		var arr = str.split("");
		var perarr = [];
		var begin = 0;
		//创建正则,如果字符串全重复,则直接return 0
		var reg = /(.)\1+/g; //括号里面的代表分组,\1表示获得和第一个分组里完全相同的内容,也就是匹配任意连续的字符

		//如果字符全部重复,直接返回0
		// if(arr.every(function(val){return val===arr[0];})){
		// return 0;
		// }
		//推荐以下方法
		if (str.match(reg) !== null && str.match(reg)[0] === str) {
			return 0;
		}
		//用于交换的函数
		function swap(index1, index2) {
			var temp = arr[index1];
			arr[index1] = arr[index2];
			arr[index2] = temp;
		}
		//如果begin到了最后一个字符,可以将这个字符串加入到全排列数组中了
		function permall(arr, begin) {
			if (begin == arr.length - 1) {
				perarr[perarr.length] = arr.join("");
				// console.log(perarr);

				return;
			}
			console.log(arr.length);
			for (var i = 0;
				(i + begin) < arr.length; i++) {
				// console.log('begin:'+begin);
				// console.log('begin+i:'+(begin+i));
				swap(begin, begin + i);
				// console.log(arr);
				permall(arr, begin + 1);
				// console.log('begin:'+begin);
				// console.log('begin+i:'+(begin+i));
				swap(begin, begin + i);

			}
		}
		// console.log('arr:'+arr);
		// console.log('begin:'+begin);

		permall(arr, begin);
		//返回相邻不重复的数量
		console.log('结束后:' + perarr);
		return perarr.filter(function(val) {
			// console.log(val);
			// console.log(reg);
			return !val.match(reg);
		}).length;
	}
</script>

 

转自:http://www.bubuko.com/infodetail-1846458.html

标签: fcc js
最后更新:2019年6月6日

风君子

独自遨游何稽首 揭天掀地慰生平

点赞
< 上一篇
下一篇 >

猜你喜欢

  • 中国电信回应被美国 FCC 列入“受管制清单”:缺乏正当理据,将采取措施维护合法权益

  • 中国移动回应被美国 FCC 列入“受管制清单”:缺乏事实依据,刻意抹黑,坚决维护合法权益

  • 不择手段封堵中企 美FCC将中国电信和中国移动列入“安全风险清单”

  • 美国 FCC 主席宣布拍卖 2.5GHz 频段,以推动 6G 发展

  • 美国 FCC:禁止房东决定宽带供应商,应由租户自主选择

  • 美国 FCC 与 Verizon、AT&T 等就 911 报警电话故障达成和解,运营商支付 600 万美元

  • 美国 FCC 批准通过短信联系自杀求助热线,运营商需在指定时间前支持

  • FCC 申请获通过,三星电子在美国启动 6G 试验:频率达 133-148㎓

  • 华为 HarmonyOS 开源鸿蒙方舟编译器前端工具“方舟 JS 运行时”正式开源

  • FCC 发布美国首个 4G LTE 网络覆盖图,可查看四大运营商在各地的网速

  • 存在安全担忧?美FCC盯上华为等五家公司监控摄像头

  • 美FCC委员敦促加码打压华为中兴,还扯上“强迫劳动”

文章评论

取消回复

风君子

独自遨游何稽首 揭天掀地慰生平

最新 热点 随机
最新 热点 随机
苹果 Apple Store 零售店扩展 Today at Apple 创想营活动,新增 7 座城市 曝骁龙 8 + 首批新机调试 6 月系统封包,年底马上发布台积电 + ARM 新架构骁龙 8 Gen 2 芯片 快手高管解读 Q1 财报:25% 月活用户创作内容,中长尾创作者内容贡献了 80% 以上播放量 【IT之家开箱】Redmi Note 11T Pro + 子夜黑图赏 数源科技:目前 5G 通信壳仅适用于华为 P50 Pro 机型,业务占比较小 苹果 Apple Watch 全新表盘“彩虹线条”上线,新款彩虹版表带开启预订,售价 379 元 999 元至 1299 元,小米 Redmi Note11 SE 5G 手机发布:搭载天玑 700 芯片,全系标配 128GB 存储 【IT之家评测室】红米 Note 11T Pro+ :首款 A + 认证 LCD 屏幕闪亮登场 AMD 公布智能访问存储技术:支持微软 DirectStorage,缩短游戏加载时间 首发价 2499 元,小米米家冰箱对开门 610L 墨羽岩发布:一级能效,20 格分区,支持 App 远程操控
抖音IP属地准确吗e地跑:全国线路覆盖率达92.5%,将升级智能扫码加油功能完成加油监控米哈游《原神》全球用户支出将突破 27 亿美元:打破最高季度纪录,中美日韩德支出最多索尼 QD-OLED 画谛系列电视 A95K 国行即将发布格力电器 2021 年营收 1878.69 亿元同比增长 11.69%施耐德电气顾俊:5G赋能,制造业智能化转型“加速”苹果将 iPad Air 2 和 iPad Mini 2 加入过时产品名单IDC:2021 年中国网络市场规模达 102.4 亿美元,路由器市场同比下滑 2.6%波导股份第一季度净利润 552.94 万元,同比增长 75.79%我们常用谁言寸草心报得三春晖歌颂母爱,它的作者是
360发现MacOS蓝牙漏洞 可实现零点击无接触远程利用 货拉拉回应寻求5亿美元融资传言:持续关注资本市场 无具体上市时间表 三国志13怎么结婚 怎么与三国美女提亲近度 揭秘Alphabet绝密量子计算软件研究团队 专注于研发算法和应用 微软收购Nuance获反垄断审查批准 预计交易在年底完成 贷款五十万二十年月供多少 黑暗之魂3一周目全奖杯快速白金攻略 工信部通报侵害用户权益的假日出行、民生服务类手机 App 港交所:中国的纳斯达克? 开源网页 UI“layui”官网宣布将在 10 月 13 日下线
标签聚合
京东 苹果 iphone 手机 三星 贷款 业界 借款人 微软 银行 利率 额度 马斯克 小米 利息 秘籍 科技 快科技 汽车 华为 信用卡 谷歌 股票 美国 腾讯 IT资讯 特斯拉 支付宝 银行卡 芯片
Tags
酒 胡萝卜 食物 私房菜 有什么好处 水果 能吃 鸡蛋 身体 会胖吗 副作用 吃什么 相克 好处 饮食 作用 土豆食谱 方法 牛肉 豆腐 糖 热量 茄子 好吃 营养 皮肤过敏 区别 菜谱 牛肉食谱 功效 怎么做 营养价值 豆腐食谱 维生素 土豆 热菜 食用方法 常吃 健康 排骨 汤类 高血压 牛奶 糖尿病人 做法 吃法 下饭菜 海鲜 一起吃 排骨食谱
最近评论
九九 发布于 3 周前(05月06日) 也可能是 IP2LOCATION 数据
风君子 发布于 5 个月前(12月20日) 直播这么赚钱的吗?
wanif 发布于 5 个月前(12月18日) 采用你提供的pe制作u盘后无法识别mac硬盘,如何解决?
robotunl 发布于 5 个月前(12月18日) 可以用了,感谢
robotunl 发布于 5 个月前(12月17日) DISM++链接下不了了啊,能再发一个么。 还有怎么制作和博主一样的PE u盘。
tiantian 发布于 10 个月前(08月08日) 谢谢分享!
欣姐 发布于 1 年前(02月06日) 很有道理啊
我在東莞上班睡覺工資一千五六 发布于 1 年前(12月16日) 东莞台商都开始搬迁河源,梅州包括赣州一些地方要么就是内地城市,因为电子厂需要大量人力所以基本上都是中...
我在東莞上班睡覺工資一千五六 发布于 1 年前(12月16日) 这个怎么有意思了,是不是太真实了 :smile: :smile:
东莞石碣维信五金制品有限公司睡觉一千五六 发布于 1 年前(12月15日) 台商大陆模式搞习惯了去了印度未必成功 :idea:

COPYRIGHT © 2021 风君子博客. ALL RIGHTS RESERVED.

豫ICP备14018241号