每日OJ题_牛客_QR6字符串替换_模拟_C++_Java

目录

牛客_QR6字符串替换_模拟

题目解析

C++代码

Java代码


牛客_QR6字符串替换_模拟

字符串替换_牛客题霸_牛客网 (nowcoder.com)

描述:

        请你实现一个简单的字符串替换函数。原串中需要替换的占位符为"%s",请按照参数列表的顺序一一替换占位符。若参数列表的字符数大于占位符个数。则将剩下的参数字符添加到字符串的结尾。

        给定一个字符串A,同时给定它的长度n及参数字符数组arg,请返回替换后的字符串。保证参数个数大于等于占位符个数。保证原串由大小写英文字母组成,同时长度小于等于500。


题目解析

简单模拟题,直接依照题目模拟即可。

C++代码

class StringFormat
{
    public:
    string formatString(string A, int n, vector<char> arg, int m) 
    {
        int j = 0;
        string ret;
        for(int i = 0; i < n; i++)
        {
            if(A[i] == '%')
            {
                if(i + 1 < n && A[i + 1] == 's')
                {
                    ret += arg[j++];
                    i++;
                }
                else
                {
                    ret += A[i];
                }
            }
            else
            {
                ret += A[i];
            }
        }

        while(j < m)
        {
            ret += arg[j++];
        }
        return ret;
    }
};

Java代码

import java.util.*;
public class StringFormat
{
    public String formatString(String A, int n, char[] arg, int m) 
    {
        StringBuffer ret = new StringBuffer();
        char[] s = A.toCharArray();
        int j = 0;
        for(int i = 0; i < n; i++)
        {
            if(s[i] != '%')
            {
                ret.append(s[i]);
            }
            else
            {
                if(i + 1 < n && s[i + 1] == 's')
                {
                    ret.append(arg[j++]);
                    i++;
                }
                else
                {
                    ret.append(s[i]);
                }
            }
        }
        while(j < m)
        {
            ret.append(arg[j++]);
        }
        return ret.toString();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GR鲸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值