纯萌新教你从0开始刷剑指offer(面试题5)

    技术2026-02-27  7

    基本是教材上的思路,但是也参考了评论区的题解

    主要是因为书上因为已经考虑到替换后会延长,所以给的字符串的长度足够长

    而题目给的字符串是替换前的,没有预留长度,必须手动申请新的空间

    class Solution { public: string replaceSpace(string s) { int blanknumber=0; int originalnumber=s.length()-1; int i=0; while(s[i]!='\0') { if(s[i]==' ') { s+="00";//申请新的空间,延长字符数组的长度 } i++; } int newnumber=s.length()-1; int indexold=originalnumber; int indexnew=newnumber; while(indexold>=0&&indexnew>indexold) { if(s[indexold]==' ') { s[indexnew--]='0'; s[indexnew--]='2'; s[indexnew--]='%'; } else { s[indexnew--]=s[indexold]; } indexold--; } return s; } };
    Processed: 0.021, SQL: 9