剑指offer面试题4 替换空格

题目描述:实现一个函数,把字符串中的每个空格都替换成"%20",例如输入"We are happy.",则输出"We%20are%20happy."

思路:按照题目要求的是把空格换成%20这种固定的字符,而且其他的字符不变,这样的话可以计算出新字符串的长度(需要先计算出空格的个数,新字符串长度为旧字符串长度+空格个数*2),然后对旧字符串从后向前遍历,如果当前字符不为空格,就直接赋给新字符串末尾,这时末尾指针加1;如果当前字符为空格时,新字符串被赋值%20,而且末尾指针+3;这样一直到遍历结束。

public static String changeStr(String s) {
		if (s == null || s.length() == 0) {
			return s;
		}
		int space = 0;
		int sLen = s.length();
		for (int i = 0; i < sLen; ++i) {
			if (s.charAt(i) == ' ') {
				++space;
			}
		}
		int strLen = sLen + 2 * space;
		char[] strChar = new char[strLen];
		int p1 = sLen - 1;
		int p2 = strLen - 1;
		while (p1 >= 0) {
			if (s.charAt(p1) != ' ') {
				strChar[p2--] = s.charAt(p1--);
			} else {
				strChar[p2--] = '0';
				strChar[p2--] = '2';
				strChar[p2--] = '%';
				p1--;
			}
		}
		return String.valueOf(strChar);
	}








1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值