zoukankan      html  css  js  c++  java
  • (Java实现) 洛谷 P1098 字符串的展开

    在这里插入图片描述

    在这里插入图片描述

    import java.util.ArrayList;
    import java.util.Scanner;
    
    public class zifuchuandezhankai {
    	static ArrayList<Integer> list = new ArrayList<Integer>();
    	public static void main(String[] args) {
    		char a, b;
    		int p1, p2, p3,temp=1;
    		String s,str="",s1="",s2="";;
    		Scanner sc = new Scanner(System.in);
    		p1 = sc.nextInt();
    		p2 = sc.nextInt();
    		p3 = sc.nextInt();
    		s = sc.next();
    		for (int i = 1; i < s.length() - 1; i+=temp) {
    			temp=1;
    			if (s.charAt(i) == '-' ) {
    				a = s.charAt(i - 1);
    				b = s.charAt(i + 1);
    				//||  (Character.isDigit(a) && Character.isLetter(b)  )
    				if((a>=65 && b<65 ) || (a<65 && b>=65) || a>=b){
    					s=s.replaceFirst("-", str);
    					list.add(i);
    					continue;
    				}
    					if(Character.isLetter(a) && a>=97){
    						a-=32;
    					}
    					if(Character.isLetter(b) &&  b>=97){
    						b-=32;
    					}
    					if(a==b){
    						s=s.replaceFirst("-", "");
    						list.add(i);
    						continue;
    					}
    				for (int j = a+1; j <b; j++) {
    					//char c = Character.forDigit(j,10);
    					char c = (char)j;
    					str=str+c;
    				}
    				if(p1==1){
    					str=str.toLowerCase();
    				}
    				else if(p1==2){
    					str=str.toUpperCase();
    				}
    				else{
    					for (int j = 0; j < str.length(); j++) {
    						s1=s1+"*";
    					}
    					str=s1;
    				}
    				for (int j = 0; j < str.length(); j++) {
    					for (int j2 = 0; j2 < p2; j2++) {
    						s2=s2+str.charAt(j);
    					}
    				}
    				str=s2;
    				if(p3==2){
    					StringBuffer ss = new StringBuffer(str);
    					ss=ss.reverse();
    					str =ss.toString();
    				}
    				temp=str.length();
    				s=s.replaceFirst("-", str);
    			//	list.add(str);
    			//	System.out.println(str);
    			//	list.add(str);
    				//System.out.println(str);
    				str="";
    				s1="";
    				s2="";
    				}
    			}
    		
    		
    		StringBuffer sss = new StringBuffer(s);
    		for (int j = list.size()-1; j >=0 ; j--) {
    			sss.insert(list.get(j), "-");
    		}
    //		
    //		sss=sss.substring(0, i)+sss.substring(i+1);
    //		sss.append(str, i, i);
    		System.out.println(sss);
    	}
    
    }
    
    
  • 相关阅读:
    快速读取txt文档
    ASP.NET中缓存非SQLServer数据库数据
    查看linq to sql 生成的sql 语句
    跟树有关的数据结构学习系列之概览
    Linux安装软件包时的“依赖关系树”算法(C#)
    Go调度器介绍和容易忽视的问题
    搞懂Go垃圾回收
    Go“一个包含nil指针的接口不是nil接口”踩坑
    Go slice:切片的“陷阱”和本质
    C#调用ODBC连接SQL Server数据库的存储过程
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12948892.html
Copyright © 2011-2022 走看看