方法一 个人方法:
s里的字符只有小写字母和数字两种情况,我们可以把s里的字母和数字分隔成两个字符串,
比较两个字符串的长度,只有当两个字符串的长度差值的绝对值为1或0才能满足题意。
长度更长的要放在结果字符串的第一位,然后交替拼接。
var reformat = function(s) {
let charStr='',numStr='',resStr=''
for(let char of s){
if(char>='a'&&char<='z'){
charStr+=char
}else{
numStr+=char
}
}
if(Math.abs(charStr.length-numStr.length)>1) return ""
let minLen=Math.min(charStr.length,numStr.length)
for(let i=0;i<minLen;i++){
if(minLen===charStr.length){
resStr+=numStr[i]
resStr+=charStr[i]
}else{
resStr+=charStr[i]
resStr+=numStr[i]
}
}
if(charStr.length===numStr.length) return resStr
else return charStr.length>numStr.length?resStr+=charStr[charStr.length-1]:resStr+=numStr[numStr.length-1]
};
消耗时间和内存情况: