字符串扩展

原创 2018年04月16日 11:25:59

Statistic
Problem Description

Tom有些时候为了记录的方便,常常将一些连续的字符用扩展符’-‘简单表示。比如abcdefg可以简写为a-g,即用起始的字符和终止字符中间加上一个扩展符’-‘来表示这个字符串。但是为了处理的方便,Tom又必须将这些我们简单记法扩展成原来的字符串。很明显要是人工来做的话必定很麻烦,Tom知道计算机可以帮助他完成这个任务,但是他却不会编程,这的确让他很上火。他知道今天是山东理工大学第三届ACM校赛的日子,届时来自全校的编程爱好者都会来参加比赛,他很兴奋,因为这个困惑他良久的问题终于要被解决了。给你一个含有扩展符’-‘的字符串,你的任务就是将他还原成原来的字符串。要求是只处理[a-z]、[A-Z]、[0-9]范围内的字符扩展,即只有当扩展符前后的字符同时是小写字母、大写字母或数字时并且扩展符前面的字符不大于后面的字符才进行扩展,其它情况不进行扩展,原样输出。例如:a-R、D-e、0-b、4-B等字符串都不进行扩展。
Input

第一行是一个正整数T,表示共有T组测试数据(T < 100)。下面的T行,每一行包括一个长度不大于1000的待扩展字符串.
Output

每组测试数据输出一行扩展后的字符串。
Sample Input

3
ADEa-g-m02
acm-0-5-a-ac-cm-m-A-AC-CM-M
Welcometothe3rdACM/ICPCCampusProgrammingContestofSDUT-1-3-A-z-a-Z
Sample Output

ADEabcdefghijklm02
acm-012345-aaccmm-AACCMM
Welcometothe3rdACM/ICPCCampusProgrammingContestofSDUT-123-A-z-a-Z

import java.util.*;
import java.text.*;

public class Main {

    public static void main(String[] args) throws ParseException{
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        sc.nextLine();
        while(T-- != 0) {
            String s = sc.next();
            char[] c = s.toCharArray();
            for(int i = 0; i < s.length(); i++) {
                if(c[i] == '-' && i - 1 >=0 && i + 1 < s.length()) {//保证-不在最前面或者最后面
                    if(c[i-1] >= 'a' && c[i+1] <= 'z' || c[i-1] >= 'A' && c[i+1] <= 'Z'|| c[i-1] >= '0' && c[i+1] <= '9') {
                        if(c[i-1] <= c[i+1]) {//扩展符前面的字符不大于后面的字符

                            char cc = (char)(c[i-1] + 1);//下一个字符
                            while(cc < c[i+1]){
                                System.out.print(cc);
                                cc = (char)(cc+1);
                            }

                        }
                        else {
                            System.out.print(c[i]);
                        }
                    }
                    else {
                        System.out.print(c[i]);
                    }
                }
                else {
                    System.out.print(c[i]);
                }
            }
            System.out.println();
        }
        sc.close();
    }

}

版权声明:正在学习中,有错误欢迎指出。感谢比❤❤~ https://blog.csdn.net/gx17864373822/article/details/79958354

ASP.NET之‘字符串’

字符串和字符相互转换、字符类型的常见方法。字符串类型的基本方法,判断两个字符串相等(Equals)、查找字符串(Indexof)、判断包含字符串(Contains)、替换字符串(Replace)、截取字符串(substring)、删除和插入字符串(Remove/Inset)、分割字符串(Split)
  • 2017年05月22日 09:53

字符串扩展(java)

字符串扩展 Time Limit: 1000MS Memory Limit: 65536KB Problem Description Tom有些时候为了记录的方便,常常将一些...
  • jinzk123
  • jinzk123
  • 2017-04-18 09:26:53
  • 560

js中字符串扩展方法

/**  * @author   */ /**  * 字符串对象新功能,去除字符串两端的空格。   */ String.prototype.trim = function(){ va...
  • zunguitiancheng
  • zunguitiancheng
  • 2015-06-24 15:24:56
  • 932

iOS: 实践 NSString扩展

NSString扩展 #import //字符串扩展 @interface NSString(YYAssist) //是否是有效的区间 -(BOOL)isValidRange:(NSRange...
  • yao_yu_126
  • yao_yu_126
  • 2013-12-27 11:17:29
  • 1087

C语言字符串处理函数扩展

  • 2016年01月12日 15:49
  • 1KB
  • 下载

字符串A和B的扩展距离,简单dp(动态规划)

字符串比较问题(动态规划算法)    对于长度相同的2个字符串A和B,其距离定义为相应位置字符距离之和。2个非空格字符的距离是它们的ASCII码之差的绝对值。空格与空格的距离为0,空格与其他字符的距...
  • qq_36523667
  • qq_36523667
  • 2017-12-27 20:04:28
  • 121

字符串扩展距离问题

问题描述:对于长度相同的2 个字符串A和B,其距离定义为相应位置字符距离之和。2 个非空格字符的距离是它们的ASCII码之差的绝对值。空格与空格的距离为0;空格与其它字符的距离为一定值k。在一般情况下...
  • Will_Lee_Buaa
  • Will_Lee_Buaa
  • 2013-01-21 20:18:53
  • 2913

扩展字符,如将A-Z,扩展为ABCD......XYZ

#include #include   void expand(char * s1, char * s2);   int main(void) {     char *s[] = ...
  • zhangchao3322218
  • zhangchao3322218
  • 2011-09-20 11:28:02
  • 648

北航11年机试--从键盘输入包含扩展符'-'的字符串,将其扩展为等价的完整字符(C语言实现)

【问题描述】 从键盘输入包含扩展符'-'的字符串,将其扩展为等价的完整字符,例如将a-d扩展为abcd,并输出扩展后的字符串。 要求:只处理[a-z]、[A-Z]、[0-9]范围内的字符扩展,即只...
  • MDreamlove
  • MDreamlove
  • 2015-07-24 19:51:51
  • 784

扩展字符A

从键盘输入包含扩展符'-'的字符串,将其扩展为等价的完整字符,例如将a-d扩展为abcd,并输出扩展后的字符串。 要求:只处理[a-z]、[A-Z]、[0-9]范围内的字符扩展,即只有当扩展符前后的...
  • yueyueniao96
  • yueyueniao96
  • 2012-03-23 16:06:24
  • 828
收藏助手
不良信息举报
您举报文章:字符串扩展
举报原因:
原因补充:

(最多只允许输入30个字)