思路: 例如把we are happy这个字符串中所有空格替换成"%20",最直接的做法是从头开始扫苗,遇到空格就替换,并且把空格后面的字符都顺序后移.复杂度O(n^2). 重要思想(这个从后往前的思想特别重要,举一反三的例子也是):先扫描一遍字符串统计出空格数量blanknum,由于每个空格被替换成3个字符"%20",即每替换一个空格总长度增加2,因此最后总的长度应该是原长+blanknum*2.然后对字符串从后往前扫描,不是空格的直接移动到新位置,如果是空格替换…
public class Solution { public String replaceSpace(StringBuffer str) { String str1=str.toString(); char[] charArray = str1.toCharArray(); StringBuilder sBuilder = new StringBuilder(); for (char c : charArray) { if(c==' ') { sBuilder.append("%20"…
boolean matchBracket( String str ) { Stack stack = new Stack(); try { for ( int i = 0; i < str.length(); i++ ) { char curChar = str.charAt( i ); switch ( curChar ) { case '[': case '{': case '(': stack.push( curChar ); break; case ']': if ( !stack.po…
大约2年前,写过一篇<字符串中去除多余的空格保留一个(C#)>https://www.cnblogs.com/insus/p/7954151.html 今天,Insus.NET使用MS SQL Server来实现相同的功能.现Insus.NET已经把它写成一个自定义函数. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Ins…
重点:字符串和元组一样, 是不可变对象. 所以将创建一个新的字符串对象,将改变后的字符加入到该新的对象里. 两种方法: 1.python的 replace函数 2.判断修改 def replace(a): return a.replace(" ", "%20") def replace1(a): b = "" for i in range(len(a)): if a[i] == " ": b += "%20"…