时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:1619705 本题知识点: 字符串 算法知识视频讲解 题目描述 请实现一个函数,将一个字符串中的每个空格替换成“ ”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We Are Happy。
public class Solution { public String replaceSpace(StringBuffer str) { int p1 = str.length() - 1; for(int i = 0; i <= p1; i++){ if(str.charAt(i) == ' '){ str.append(" "); } } int p2 = str.length() - 1; while(p1 >= 0 && p2 > p1){ char c = str.charAt(p1--); if(c == ' '){ str.setCharAt(p2--, '0'); str.setCharAt(p2--, '2'); str.setCharAt(p2--, '%'); } else{ str.setCharAt(p2--, c); } } return str.toString(); } }经验总结: 使用数组长度时,如果不是题目特殊要求,先将数组长度保存下来,再将其作为判断的条件,否则会出现长度不断变化而使代码出现逻辑错误。
