作者:小鱼014999 | 来源:互联网 | 2023-05-18 07:40
试题描述使用排序算法对数组进行排序,按升序注:数组内容只会有大写字母,且可能会出现重复,不允许使用java.util下的任何类输入输入大写字母,数组长度不固定,且大写字母会出
试题描述
使用排序算法对数组进行排序,按升序 注:数组内容只会有大写字母,且可能会出现重复,不允许使用java.util下的任何类
输入
输入大写字母,数组长度不固定,且大写字母会出现重复
输出
输出结果 升序后的数组
输入示例
'S' , 'W' , 'B' , 'Q' , 'A' , 'C' , 'A' , 'M' , 'I' , 'P' , 'E' , 'Y'
输出示例
'A' , 'A' , 'B' , 'C' , 'E' , 'I' , 'M' , 'P' , 'Q' , 'S' , 'W' , 'Y'
思路
- 把input中的’ , ‘去掉
- 把input转成char[],并排序
- 把char[]合并成String,并加上’ , ’
ps:这道题有个坑,就是两个字母之间除了符号外,还有空格,起初误以为是中文逗号,运行总是0%,题目又不能复制,最后用firebug复制出来才发现是空格
package com.vapy.offer;
import java.util.Scanner;
/** * * @author vapy 2016年10月6日 * */
public class Main8 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
input = input.replaceAll(",", "");
input = input.replaceAll("'", "");
input = input.replaceAll(" ", "");
String temp = sort(input);
String result = "'";
char[] ch = temp.toCharArray();
for (char c : ch) {
result += c + "' , '";
}
result = result.substring(0, result.length() - 4);
System.out.println(result);
}
public static String sort(String str) {
char[] s1 = str.toCharArray();
for (int i = 0; i for (int j = 0; j if (s1[i] char temp = s1[i];
s1[i] = s1[j];
s1[j] = temp;
}
}
}
return String.valueOf(s1);
}
}
本文代码可在github查看:点击此处