java菜鸟求解
1:写一个方法将字符串中数字按升序重新排列(如“13a65Bc42”变成“12a34Bc56”)
2:写一个方法用形如“-1+5i,6-8i,3+6.5i”的复数序列(字符串)生成一个Map<Double,
Double>类型的对象,实部做key,虚部做value。
大虾门指点指点,今天笔试搞蒙了。
------最佳解决方案--------------------13a65Bc42
分成2组 数字一组,字母一组,并记录字母的位置如a-2 B-5 c-6
->数字排序,放到list中
for循环字母,像以下这样将相应的数据插入到相应的位置即可。
list.add(2,a);
list.add(5,B)
list.add(6,c)
------其他解决方案--------------------更优化的
13a65Bc42
分成2组 数字一组,字母一组,并记录字母的位置如a-2 B-5 c-6
->数字排序,使用最终数组s
for(int i = 0; i < length;i++) {
if(i位置为字母)
s[i]=顺序从字母中取
否则
顺序从数字中取
}
这差不多就是合并排序