问题描述
- java题,将该字符串每个字符与'U'之差的绝对值的升序排序
- 输入一组字符串,将该字符串每个字符与'U'之差的绝对值的升序排序。在线等!!?
解决方案
每个字符都减去同一个字符跟不减不一样么?没有必要啊。直接排序即可。
解决方案二:
首先,按照我的一贯观点,这种问题和编程语言无关,和编程语言无关,和编程语言无关。
重要的事情说三遍!
设计重点:
1.与U的差值存储;
2.升序排序。
已知的排序算法相当多,不过在本问题情形下,需要稍作变通。
给出一个简单方案吧:
给定字符串Char[];
比较差值,存储差值数据到deta[i];
*对deta数组排序(比较deta,但是对Char进行移动);
按序输出。
解决方案三:
public static void main(String[] args) { System.out.println(""Hello World!""); String s = ""ABKPWUdajiewaYOWBWQYX""; Character[] array = new Character[s.length()]; for(int i = 0; i < s.length(); i ++){ array[i] = s.charAt(i); } Arrays.sort(arraynew myComparator()); System.out.println(Arrays.toString(array)); } public static class myComparator implements Comparator<Character> { @Override public int compare(Character e1 Character e2){ int a = Math.abs(e1 - new Character('U')); int b = Math.abs(e2 - new Character('U')); System.out.println(""a:"" + a + ""b:"" + b); if(a > b){ return 1; }else if(a < b){ return -1; }else{ return 0; } } }
时间: 2024-11-02 22:30:48