字符串排列与组合
文本所有处理都在浏览器本地完成,数据不上传服务器
输入
把文件拖到这里可直接载入
输出
全排列、取 k 个的组合、左右旋转、笛卡尔积,四种模式一个工具。最要紧的一条是先算数量再生成:`abcdefghij` 的全排列是 3628800 条,先生成再判断上限的话,页面会在用户还没反应过来时卡死 —— 所以超过上限直接报错,并告诉你要多少条。 重复字符会去重:`aab` 的全排列是 3 条(`aab`/`aba`/`baa`)而不是 6 条。笛卡尔积模式里,逗号分开的每一段,其字符各成一组(`ab,12` 得到 `a1 a2 b1 b2`)。 全部在浏览器里计算,不联网、不上传。
功能
- 五种模式:全排列、组合(取 k 个)、左旋转、右旋转、笛卡尔积
- ⚠️ 先算精确条数再决定是否生成,超上限报错而不是静默截断
- 重复字符去重:aab 的全排列是 3 条而不是 6 条
- 组合用生成函数系数精确计数,重复字符也不虚报
- 可选择生成顺序或按字典序排序输出
- 给出结果总条数与当前上限
- 按码点处理,emoji 不会被拆坏
使用方法
- 输入一段文本(只取第一行)
- 选择模式;组合模式再设 k
- 按需要调整去重、顺序与上限
- 结果列表与总数立刻出现
常见问题
- 为什么超上限要报错,而不是给前 1000 条?
- 因为静默截断会让人以为「就这么多」。排列数是阶乘级增长的,少给的那些往往正是你要找的;报错并告诉你需要多少条,才是诚实的做法。
- 重复字符是怎么去重的?
- 生成时按「每个字符还剩几个」回溯,而不是交换位置,所以两个相同的 a 换位置不会被当成两个结果。`aab` 因此是 3 条。
- 笛卡尔积怎么输入?
- 用逗号分隔每组,每组的字符构成一个集合。例如 `ab,12` 会得到 a1、a2、b1、b2 四条。
- 数据会上传吗?
- 不会。全部在浏览器内存里计算,不发送任何请求,断网也能用。
相关工具
花括号展开
网络把 bash 花括号展开式({a,b}、{1..10..2}、{a..e})逐项展开,支持嵌套、步长、倒序与前导零补位,并给出展开数量,数据不出浏览器。
文本随机打乱
文本把文本随机打乱:按行、按字或按词重排,词间间隔与首尾缩进留在原位。纯本地运算,点一次换一批。
正则测试
文本浏览器里调试正则:匹配实时高亮、捕获组、替换预览,并挡住灾难性回溯;调好可生成 JavaScript、Python、Java、Go、PHP 代码,反向引用按语言转换。
文本对比
文本把两份文本逐行对比,高亮标出新增、删除与未改动的行,改动按最小差异对齐,而不是整段标成变了。全部在浏览器本地完成,内容不上传。
字数统计
文本中英混排的文本到底有多长?中文按字、英文按词分开统计,给出字符数、行数、字节数、阅读与朗读时长,以及会被切成几条短信。全部在本机完成。
文本清洗
文本清洗从日志或表格里复制出来的一列内容:去重行、排序、去空行、去首尾空白、去行号、合并多空格,规则逐条开关。粘贴的内容只在本机处理。