美食网站界面设计,最近发生的热点新闻事件,重庆网站公司设计,安徽合肥目录 我们直接看题解吧#xff1a; 方法#xff1a; 审题目事例提示#xff1a; 解题思路#xff1a; 法1#xff1a; 代码#xff08;法1#xff09;#xff1a; 法2#xff1a; 代码#xff08;法2#xff09;#xff1a; 原题解#xff1a; 【剑指Offer】2、替… 目录 我们直接看题解吧 方法 审题目事例提示 解题思路 法1 代码法1 法2 代码法2 原题解 【剑指Offer】2、替换空格 力扣题解 LCR 122. 路径加密 - 力扣LeetCode 今天刷路径加密替换空格大家有兴趣可以点上看看题目要求试着做一下。
我们直接看题解吧 由于力扣题目与原题有点差异力扣传入的是String,而原题这边传的是StringBuffer,所以这边以原题为主 方法 第一个方法创建新字符串 (剑指offer)第二个方法原地更改 审题目事例提示 原题中时将空格“ ”改为%20这意味着每次需要增加两位 解题思路
法1 循环遇到‘.’空格就加空格“ ”%20否则就其他加字符。 代码法1
力扣
class Solution:def pathEncryption(self, path: str) - str:res []for c in path:if c .: res.append( )else: res.append(c)return .join(res) 原题 public String replaceSpace(StringBuffer str) {String res;for(int i0;istr.length();i){char cstr.charAt(i);if(c )res %20;elseres c;}return res;}
优化1利用三目运算
class Solution {
public:string replaceSpace(string s) {string str;for(int i 0;is.size();i){s[i] ?str%20:strs[i];}return str;}
};
优化2利用replace()方法
class Solution {public String replaceSpace(String s) {return s.replaceAll( ,%20);}
}
法2 判断数组是否为空是则返回null循环统计一下空格数量设置数组新长度双指针oldindex指向原数组末尾,newindex指向原数组2*空数量循环 ·若遇到空格oldindex--,依次newindex--,填入%,2,0 ·否则将其他字符元素放入new指向的位置之后old与new 递减 5.最后返回字符串 代码法2 public String replaceSpace(StringBuffer str) {if(strnull)return null;int numOfblank 0;//空格数量int lenstr.length();for(int i0;ilen;i){ //计算空格数量if(str.charAt(i) )numOfblank;}str.setLength(len2*numOfblank); //设置长度int oldIndexlen-1; //两个指针int newIndex(len2*numOfblank)-1;while(oldIndex0 newIndexoldIndex){char cstr.charAt(oldIndex);if(c ){oldIndex--;str.setCharAt(newIndex--,0);str.setCharAt(newIndex--,2);str.setCharAt(newIndex--,%);}else{str.setCharAt(newIndex,c);oldIndex--;newIndex--;}}return str.toString();}
注使用 了setLength()、setCharAt()方法