码迷,mamicode.com
首页 > 其他好文 > 详细

字符串替换

时间:2020-06-21 20:01:46      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:alt   system   loading   存在   核心   scanner   src   ext   ima   

技术图片

 

 

import java.util.Scanner;

/**
 * 给定一个仅由小写字母x和y组成且长度不超过105的字符串,
 * 每次可以将字符串中的一个子串xy替换成字符串yyx,
 * 那么至少要替换多少次才能让字符串中不存在子串xy?
 *
 * 核心要点:
 *      1. 一个字符串不存在子串xy,则需要保证所有的y均在x前;
 *      2. 对x{Ny}进行替换的结果是{2Ny}x,需要替换的次数为y次。
 *
 * 解题思路:
 *      从后往前遍历,将x每次都替换到最后,按上面核心要点计算次数及增加y个数
 */
public class test01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        // 最后一个x后面的y的数量
        int count = 0;
        // 替换次数
        int res = 0;
        int len = str.length();
        // (a + b ) % c = a % c + b % c
        for (int i = len - 1; i >= 0; i--) {
            if (str.charAt(i) == ‘y‘) {
                count += 1;
            } else if (str.charAt(i) == ‘x‘) {
                res = (res + count) % 1000000007;
                count = (count * 2) % 1000000007;
            }
        }
        System.out.println(res);
    }
}

 

字符串替换

标签:alt   system   loading   存在   核心   scanner   src   ext   ima   

原文地址:https://www.cnblogs.com/gy7777777/p/13173654.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!