题目描述
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
分析
字典序算法解析:
最小字典序是数组从小到大的排序,最大字典序是最小字典序的倒序。
找到下一个字典序的步骤如下:
1)定义一个指针指向数组的最后一个数,从右向左找到第一个小于自己的右侧相邻元素的元素ai,以ai开始向右找大于ai的数中最小的ak;
2)交换ai、ak;
3)将ai右侧的数字集翻转
//如果输入的字符串内容是数字
function max(arr) {
arr.sort((a, b) => {
return a - b
});
var tempArr = [...arr].reverse();
var index = arr.length - 1;
var temp = 0;
while (String(arr) != String(tempArr)) { //数组是引用类型,如果用arr==tempArr比较的是引用,永远为false
index = arr.length - 1;
while (index--) {
if (arr[index] < arr[index + 1]) {
temp = Math.min(...arr.slice(index).filter((item) => item > arr[index]));
文章浏览阅读2.6k次。【HarmonyOS HiSpark IPC DIY Camera试用连载4 】 鸿蒙OS内核如何启动第一个用户进程init_lite1. 鸿蒙OS编译知识2. 从编译过程看鸿蒙OS代码结构3. 第一个用户态进程init_lite4. Init_lite是如何被kernel调用的?1. 鸿蒙OS编译知识(原理引自中科创达OpenHarmony研究组 鸿蒙OS开源代码精要解读之——init)OpenHarmony源码编译系统使用了google开发的gn工具以及ninjia。这二者结合起来比传统的make_lite_user_sec_entry原理
文章浏览阅读1k次。Instruction for building TheiaSfM._theia-sfm
文章浏览阅读458次。第一步:下载进入到mysql官网下载自己对应版本的mysql,下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads我这里下载mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz版本也可以进入linux后用命令下载wget https://cdn.mysql.com//Downloads..._mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz下载
文章浏览阅读388次。题意:给出一个序列,四种操作C l r d: Adding a constant d for every {Ai | l <= i <= r}, and increase the timestamp by 1, this is the only operation that will cause the timestamp increase. Q l r: Querying the current_to the moon操作
文章浏览阅读283次。将mysql的镜像导出成tar文件到当前文件夹。docker-compose.yml文件。#离线做mysql升级。_升级 docker-compose
文章浏览阅读469次。首先这是show.jsp pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><% request.setCharacterEncoding("utf-8"); String name = r_numberformatexception null
文章浏览阅读3.3k次。有时我们需要批量读取图片,所以我们有必要知道怎么在OpenCV开源环境下批量读取图片!批量读取图片的关键是如何让程序知道文件夹下图片的名字!第一种方法:这种方法只针对图片名字有规律的情况,比如:***(0).jpg***(1).jpg***(2).jpg***(3).jpg..................源代码如下:代码中用到的图片下载链接为:http://pan.b..._opencv批量读取图片
文章浏览阅读1.1k次。目录批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2、ECHO 和 @ 3、PAUSE 4、ERRORLEVEL 5、TITLE 6、COLOR 7、mode 配置系统设备 8、GOTO 和 : 9、FIND 10、START 11、assoc 和 ft..._bat脚本串口发送
文章浏览阅读1.5k次。思路:1、链表实现,不用考虑扩容问题2、节点维护next指针,每次删除元素,删除头结点,插入元素队尾插入代码:package com.datastructure.stackqueue;/** * 实现一个栈,自定义栈,用链表实现,方便扩容 */public class DefineQueue<T> { private Node<T> ..._java实现一个队列 匀速处理
文章浏览阅读880次,点赞19次,收藏17次。猴子测试是一种用于测试应用程序的黑盒测试,通过提供随机输入来检查系统行为,例如检查系统是否崩溃。测试主管通常会准备它,或者测试经理,文档的重点是描述要测试什么,如何测试什么时候测试,谁来做什么测试。我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。猴子测试和即席测试都遵循非正式的方法,但是在猴子测试中,我们不需要对软件有深入的了解。它是最终测试,同时执行功能性和非功能性测试。
文章浏览阅读79次。char *UniCodeToUTF8(CString strUniCode){ LPWSTR pWstr = new wchar_t[strUniCode.GetLength() + 1]; wcscpy(pWstr, T2W((LPTSTR)strUniCode.GetString())); //获取转完后的长度 int nLen = WideCh..._utf8_ai
文章浏览阅读5.5k次。最近在搭建hadoop集群实验中,启动集群时常报错:jobtracker.info could only be replicated to 0 nodes, instead of 1查了好多资料,用了好多方式尝试解决,通过下面的命令总有找到问题所在了。原因:Configured Capacity也就是datanode 没用分配容量 [root@dev9106 bin]# ./ha_dfsadmin -report详解