网络营销站点页面设计原则,网站诊断分析报告模板及优化执行方案.doc,做风险代理案源的网站,无锡cms建站题目描述
对报文进行重传和重排序是常用的可靠性机制#xff0c;重传缓中区内有一定数量的子报文#xff0c;每个子报文在原始报文中的顺序已知#xff0c;现在需要恢复出原始报文。
输入描述
输入第一行为N#xff0c;表示子报文的个数#xff0c;0 #xff1c;N ≤ …题目描述
对报文进行重传和重排序是常用的可靠性机制重传缓中区内有一定数量的子报文每个子报文在原始报文中的顺序已知现在需要恢复出原始报文。
输入描述
输入第一行为N表示子报文的个数0 N ≤ 1000。 输入第二行为N个子报文以空格分开子报文格式为 字符审报文内容后缀顺序索引 字符串报文内容由[a-z,A-Z]组成后缀为整型值表示顺序。
顺序值唯一不重复。
输出描述
输出恢复出的原始报文按照每个子报文的顺序的升序排序恢复出原始报文顺序后缀需要从恢复出的报文中删除掉
用例
输入4 rolling3 stone4 like1 a2输出like a rolling stone说明4个子报文的内容分别为 rollingstonelikea顺序值分别为3412按照顺序值升序并删除顺序后缀得到恢复的原始报文like a rolling stone“
输入8 gifts6 and7 Exchanging1 all2 precious5 things8 kinds3 of4输出Exchanging all kinds of precious gifts and things说明无
解析
本题属于简单的字符串操作只需要熟悉常见的数据结构和排序即可。可以使用正则或者后序遍历的方式取出每个单词的后的数值从而对单词进行排序即可。
示例代码
package com.bytesoc.calc;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;public class T71 {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n Integer.parseInt(sc.nextLine());ListInteger orderList new ArrayList();MapInteger, String wordMap new HashMapInteger, String();String input sc.nextLine();String wordArr[] input.split( );for (int i 0; i wordArr.length; i) {String word wordArr[i];// 截取尾部的数字String numStr ;String last word.charAt(word.length() - 1) ;Integer number -1;try {while (word.length() 0) {int nS Integer.parseInt(last);numStr nS numStr;StringBuilder sb new StringBuilder(word);sb.setCharAt(word.length() - 1, );word sb.toString().trim();last word.charAt(word.length() - 1) ;}} catch (Exception e) {number Integer.parseInt(numStr);}String content word.replace(numStr, );orderList.add(number);wordMap.put(number, content);}orderList.sort((a, b) - a - b);for (Integer key : orderList) {System.out.print(wordMap.get(key) );}}
} 代码只提供编程思路未经过官方实例测试 执行示例