JZX轻语:简

LeetCode 2109 - 向字符串添加空格

发表于2025年04月05日

#双指针

使用两个指针维护当前字符串s的索引和空格数组spaces的索引。我们从左到右遍历字符串s,如果当前s的索引等于空格数组中索引指向的位置,则在结果字符串中添加一个空格,并将空格数组的索引加一(往右移动到下一个需要加空格的地方)。按需处理完空格后,将当前字符添加到结果字符串中。最终返回结果字符串即可。

class Solution {
public:
    string addSpaces(string s, vector<int>& spaces) {
        string ret(s.size() + spaces.size(), ' ');
        int ret_pos = 0, spaces_pos = 0;
        for (int i = 0; i < s.size(); ++i) {
            if (spaces_pos < spaces.size() && spaces[spaces_pos] == i) {
                ++ret_pos; ++spaces_pos;
            }
            ret[ret_pos++] = s[i];
        }
        return ret;
    }
};

闪念标签:LC

题目链接:https://leetcode.cn/problems/adding-spaces-to-a-string/