【剑指Offer学习】【面试题4 : 替换空格】
2015-04-28 08:24
591 查看
【剑指Offer学习】【所有面试题汇总】
题目:请实现一个函数,把字符串中的每个空格替换成"%20",例如“We are happy.”,则输出“We%20are%20happy.”。public class Test04 { /** * 请实现一个函数,把字符串中的每个空格替换成"%20",例如“We are happy.“,则输出”We%20are%20happy.“。 * * @param string 要转换的字符数组 * @param usedLength 已经字符数组中已经使用的长度 * @return 转换后使用的字符长度,-1表示处理失败 */ public static int replaceBlank(char[] string, int usedLength) { // 判断输入是否合法 if (string == null || string.length < usedLength) { return -1; } // 统计字符数组中的空白字符数 int whiteCount = 0; for (int i = 0; i < usedLength; i++) { if (string[i] == ' ') { whiteCount++; } } // 计算转换后的字符长度是多少 int targetLength = whiteCount * 2 + usedLength; int tmp = targetLength; // 保存长度结果用于返回 if (targetLength > string.length) { // 如果转换后的长度大于数组的最大长度,直接返回失败 return -1; } // 如果没有空白字符就不用处理 if (whiteCount == 0) { return usedLength; } usedLength--; // 从后向前,第一个开始处理的字符 targetLength--; // 处理后的字符放置的位置 // 字符中有空白字符,一直处理到所有的空白字符处理完 while (usedLength >= 0 && usedLength < targetLength) { // 如是当前字符是空白字符,进行"%20"替换 if (string[usedLength] == ' ') { string[targetLength--] = '0'; string[targetLength--] = '2'; string[targetLength--] = '%'; } else { // 否则移动字符 string[targetLength--] = string[usedLength]; } usedLength--; } return tmp; } public static void main(String[] args) { char[] string = new char[50]; string[0] = ' '; string[1] = 'e'; string[2] = ' '; string[3] = ' '; string[4] = 'r'; string[5] = 'e'; string[6] = ' '; string[7] = ' '; string[8] = 'a'; string[9] = ' '; string[10] = 'p'; string[11] = ' '; int length = replaceBlank(string, 12); System.out.println(new String(string, 0, length)); } }
运行结果:
相关文章推荐
- 剑指Offer学习之面试题4 : 替换空格
- 剑指offer面试题4 替换空格
- 【剑指offer】面试题4:替换空格
- 剑指offer——面试题4:替换空格
- 剑指offer面试题4:替换空格 相关题目 排序的数组A2中所有数字插入到A1并保持排序
- 【剑指offer】2.3.2 字符串——面试题4:替换空格
- 剑指Offer面试题4(Java版):替换空格
- 剑指offer 面试题4—替换字符串中空格
- 剑指offer面试题4:替换字符串中的空格
- 剑指offer面试题4 替换空格
- 剑指offer--面试题4:替换空格
- 【剑指offer】面试题5:替换空格
- 剑指Offer之面试题4:替换空格
- 剑指offer-面试题4.替换空格
- 剑指offer面试题4:替换空格
- 剑指Offer面试题5:替换空格程序调试与错误解决方法
- 剑指Offer面试题2:替换空格
- C++笔试题(剑指offer 面试题4 替换字符串中的空格)
- 剑指Offer面试题4替换空格