js实现字符全排列算法的简单方法

发布时间 - 2026-01-11 00:54:55    点击率:

实例如下:

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>字符全排列</title>
</head>
<body>
   
 
<script>
function charsMap(o){
  o = (o+"").replace(/(\w)(?=\w*\1)/g,"").replace(/\s+/g,""); //去除重复字符以及空白字符
  switch(o.length){
    case 0: 
    case 1: return [o];
    default: 
      var p = /^(\S+?)(\S)$/.exec(o), //使用正则将字符串分割为n-1长度字符串,以及最后一个字符串。
        _r = charsMap(p[1]), 
        l = p[2], 
        r = [];
       
      for (var i = 0; i < _r.length; i++) {
        var t = _r[i];
        for (var j = 0, len = t.length; j <= len; j++) {
          r.push( t.replace( new RegExp("^(\\S{"+j+"})(\\S{"+(len-j)+"})$"), "$1"+l+"$2" ) ); 
          //字符插入位置从开头前到结尾后,正则的作用相当于Array.splice(j,0,l); 在下标j的位置插入一个字符l
        }
      }
      return r;
  }
}
 
var arr = "abcde";
var t = new Date().getTime();
var result = charsMap(arr);
document.write( "总耗时:"+(new Date().getTime()-t)+"ms" );
 
  var html = "<ul><li>" + result.join("</li><li>") + "</li></ul>";
  document.write(html);
</script>
</body>
</html>

以上这篇js实现字符全排列算法的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# 字符串全排列算法  # JavaScript搜索字符串并将搜索结果返回到字符串的方法  # JavaScript中的字符串操作详解  # javascript如何返回字符串的所有排列  # 给大家  # 希望能  # 这篇  # 小编  # 大家多多  # 则将  # head  # meta  # gt  # lang  # en  # charset  # script  # function  # charsMap  # UTF  # title  # body  # color  # ccffcc 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  如何在阿里云高效完成企业建站全流程?  如何在IIS中配置站点IP、端口及主机头?  如何快速查询域名建站关键信息?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何快速生成凡客建站的专业级图册?  iOS验证手机号的正则表达式  javascript如何操作浏览器历史记录_怎样实现无刷新导航  JS碰撞运动实现方法详解  网站制作软件有哪些,制图软件有哪些?  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  制作公司内部网站有哪些,内网如何建网站?  如何在宝塔面板中创建新站点?  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  javascript中的try catch异常捕获机制用法分析  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  如何在阿里云ECS服务器部署织梦CMS网站?  如何在阿里云通过域名搭建网站?  Laravel如何配置Horizon来管理队列?(安装和使用)  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  如何用花生壳三步快速搭建专属网站?  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  EditPlus中的正则表达式 实战(1)  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  昵图网官网入口 昵图网素材平台官方入口  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  Laravel怎么使用Intervention Image库处理图片上传和缩放  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  js实现获取鼠标当前的位置  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  如何有效防御Web建站篡改攻击?  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Laravel怎么调用外部API_Laravel Http Client客户端使用  北京网站制作公司哪家好一点,北京租房网站有哪些?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  高端云建站费用究竟需要多少预算?  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  Laravel如何记录自定义日志?(Log频道配置)  如何正确选择百度移动适配建站域名?  如何在局域网内绑定自建网站域名?