知识点
相关文章
更多最近更新
更多[google面试CTCI] 1-5.替换字符串中特定字符
2019-03-02 01:01|来源: 网路
【字符串与数组】
Q:Write a method to replace all spaces in a string with ‘%20’
题目:写一个算法将一个字符串中的空格替换成%20
解答:
很直观的解法,首先统计出字符串中空格个数,然后分配新的内存空间,依次从头到尾复制原字符串到新字符串中,遇到空格,则复制%20这三个字符。还有没有其他更好点的方法呢??
char* replace(char* str){ int len=strlen(str); int spaceNum=0; int i; for(i=0;i<len;++i){ if(str[i]==' ') ++spaceNum; } char* newStr=malloc((len+2*spaceNum+1)*sizeof(char)); int index=0; for(i=0;i<len;++i){ if(str[i]==' '){ newStr[index++]='%'; newStr[index++]='2'; newStr[index++]='0'; } else newStr[index++]=str[i]; } newStr[index]='\0'; return newStr; }
作者:Viidiot 微信公众号:linux-code
转自:http://www.cnblogs.com/jjdiaries/p/3377594
相关问答
更多-
Google的疯狂面试题 测测你能承受几个?[2023-01-12]
常人网,致力于人才的培养。 -
替换字符串中的字母(Replace letters in a string)[2023-05-12]
让框架为您做转换: NSString *blah = @"aąbcčdeęėfghiįjzž"; NSData *data = [blah dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; NSString *newblah = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; NSLog(@"new: %@", newblah); 这 ... -
CASE WHEN选项非常合理。 另一种选择是将它们链接在一起: REPLACE( REPLACE( REPLACE( CustomerName, 'ABC', 'XYZ'), 'PLO', 'Rustic'), 'Kix', 'BowWow') 你选择哪一个取决于确切的情况。 链接的REPLACE调用可能更快,但它们可能以奇怪的方式重叠(例如,如果输出到一个替换的匹配输入到后续的替换)。 CASE WHEN方法避免了这个问题,但它可 ...
-
正则表达式可能的解决方案 该模式搜索http://或https://后跟一个或多个非空白字符,直至字边界。 let string = "Hello.World everything is good http://www.google.com By the way its good" let trimmedString = string.replacingOccurrences(of: "https?://\\S+\\b", with: "website", options: .regularExpressi ...
-
如何使用replace替换字符串中的所有匹配字符?(How to replace all the matched characters in a string using replace?)[2022-12-04]
这两个片段都有效。 var str = "testing-this-out"; var beforeEl = document.getElementById("before"); var afterEl = document.getElementById("after"); beforeEl.innerText = "Before: " + str; afterEl.innerText = "After: " + str.replace(/([-])+/g, "");我对Google AppEngine没有多少经验,但我的理解是它与Django关系非常密切。 您的模板实际上并不包含Python代码,即使您在其中使用的某些结构看起来像它。 你的两个问题都应该使用模板过滤器来解决。 如果是Django,我会用第二个问题来解决这个问题: {{ item.description|truncatewords:10 }} 对于你的第一个问题(字符串替换),可能没有内置的过滤器,你可以使用它。 你将需要编写自己的。 像这样的东西; from google.appengine.ext ...用字符串替换字符串中的多个字符会重写字符(Replacing multiple characters in a string with a string rewrites characters)[2023-06-15]
使用替换功能 ,像这样 var str = "I!%1$s-I!%2$s TTL!%3$s"; var regex = ['[123]', '[456]', '[789]']; console.log(str.replace(/%(\d+)/g, function(match, group1) { return regex[parseInt(group1) - 1] + group1; })); // I![123]1$s-I![456]2$s TTL![789]3$s RegEx /%(\d+)/ ...您可以使用gsub和正则表达式执行此操作。 string = "30.538358,-96.692008,30.538602,-96.691741,30.539737,-96.690322" gsub("([^,]+,[^,]+),", "\\1|", string) "30.538358,-96.692008|30.538602,-96.691741|30.539737,-96.690322" You can do this with gsub and a regular expression. str ...您可以使用前瞻并向后看,以便您只匹配“之间”部分。 string test = "\r\n\r\n\r\n"; Regex reg = new Regex("(?<=\r\n)(?=\r\n)"); test = reg.Replace(test, " "); 这将导致test为“\ r \ n \ r \ n \ r \ n”。 You can use a look ahead and look behind so that you only match the "between" part. stri ...Perl Regex替换除字符串中的特定域之外的所有域(Perl Regex replace all domain except a particular in a string)[2022-04-19]
尝试用以下方法替换正则表达式的匹配部分: (http:\/\/)?(?!(mycode\.|ycode\.|code\.|ode\.|de\.|e\.))[a-z\.]+?\.(com|org|net) Try replacing the matching part of the regex by that : (http:\/\/)?(?!(mycode\.|ycode\.|code\.|ode\.|de\.|e\.))[a-z\.]+?\.(com|org|net)