L1-094 剪切粘贴 - java

题目解析

给定一次字符串

再给n次操作

每次操作将l到r之间的字符串截取出来 放到q和h之间 (如果没有则放到最后)

解题思路

字符串查找

拼接

代码

import java.io.*;
import java.math.*;
import java.util.*;

public class Main
{

	public static void main(String[] args) throws IOException
	{
		String s = sc.next();
		int n = sc.nextInt();
		while (n-- > 0)
		{
			int l = sc.nextInt() - 1, r = sc.nextInt() - 1; // 字符串的下标从0开始, 题目从1开始
			String q = sc.next(), h = sc.next(); 

			String res = s.substring(l, r + 1); // 将中间的字符串截取出来
			s = s.substring(0, l) + s.substring(r + 1); // 将剩下来的字符串拼接起来

			if (s.indexOf(q + h) == -1) // 没有找到 则添加到最后面
				s = s + res; 
			else
			{
				int m = s.indexOf(q + h) + q.length(); // 找出位置
				s = s.substring(0, m) + res + s.substring(m); // 拼接起来
			}
		}
		out.println(s);

		out.flush();
		out.close();

	}

	static Scanner sc = new Scanner(System.in);
	static PrintWriter out = new PrintWriter(System.out);

}


字符串截取

indexOf


团体程序设计天梯赛-练习集-java

赞赏