微软实习机试题 String reorder 的 Java 实现
来源:互联网 发布:mac联网恢复系统 编辑:程序博客网 时间:2024/06/01 08:47
【Description】
Your program should reorder and split all input string characters into multiple segments, and output all segments as one concatenated string. The following requirements should also be met,
1. Characters in each segment should be in strictly increasing order. For ordering, ‘9’ is larger than ‘0’, ‘a’ is larger than ‘9’, and ‘z’ is larger than ‘a’ (basically following ASCII character order).
2. Characters in the second segment must be the same as or a subset of the first segment; and every following segment must be the same as or a subset of its previous segment.
Your program should output string “<invalid input string>” when the input contains any invalid characters (i.e., outside the '0'-'9' and 'a'-'z' range).
【Input】
Input consists of multiple cases, one case per line. Each case is one string consisting of ASCII characters.
【Output】
For each case, print exactly one line with the reordered string based on the criteria above.
【样例输入】
aabbccdd007799aabbccddeeff113355zz1234.89898abcdefabcdefabcdefaaaaaaaaaaaaaabbbbbbbddddddee
【样例输出】
abcdabcd013579abcdefz013579abcdefz<invalid input string>abcdefabcdefabcdefabdeabdeabdabdabdabdabaaaaaaa
【AC代码】
import java.util.ArrayList;import java.util.Arrays;import java.util.HashSet;import java.util.List;import java.util.Scanner;import java.util.Set;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);String str, re;while (in.hasNextLine()) {str = in.nextLine();re = process(str);System.out.println(re);}}private static String process(String str) {char[] chs = str.toCharArray();for (char c : chs) {if (!(Character.isDigit(c) || Character.isLowerCase(c))) {return "<invalid input string>";}}List<Character> li = new ArrayList<Character>();for (char c : chs) {li.add(c);}String re = "";Set<Character> se = new HashSet<Character>();while (li.size() > 0) {for (int i = li.size() - 1; i >= 0; i--) {if (se.add(li.get(i))) {li.remove(i);}}String re2="";for (Character ttt : se) {re2 += ttt;}char[] ttt = re2.toCharArray();Arrays.sort(ttt);String tss = new String(ttt);se.clear();re += tss;}return re;}}
- 微软实习机试题 String reorder 的 Java 实现
- 微软2014年4月 实习生招聘机试题 1.String reorder
- 【微软2014实习生】 String reorder
- 2014微软在线测试-String reorder-WA
- 2014微软实习生笔试题-String reorder
- 微软2014实习生及秋令营技术类职位在线测试 String reorder java
- ReOrder List java实现
- 2017华为实习机试题(java)
- 微软2014校招笔试题-String reorder
- 微软2014实习生招聘编程测试string reorder
- 微软2014实习生在线测试之String reorder
- 微软2014实习生及秋令营之String reorder问题
- (2014微软实习生笔试题)1.String reorder
- 微软2014实习生在线测试之String reorder .
- 微软实习生测试题题目1 : String reorder
- String reorder
- string reorder
- String reorder
- 计算机科学中最重要的32个算法
- IOS 核心开发课程---学习步骤---应该掌握的知识
- ArrayList对象遍历的两种方法
- 欠扁的小孩
- 谈新技术学习方法-如何学习一门新技术新编程语言
- 微软实习机试题 String reorder 的 Java 实现
- 程序员技术练级攻略
- maven jboss 插件配置
- HashSet、TreeSet和LinkedHashSet
- 30分钟,让你成为一个更好的程序员
- java学习:输入字符串
- recognizing easy sentence with lex and yacc
- vmlinux.lds.s 脚本语法
- 动态静态库