腾讯2017暑期实习生编程题-字符移位
来源:互联网 发布:scr屏幕录像软件 编辑:程序博客网 时间:2024/05/16 01:55
题目:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间
例如输入 “AkleBiCeilD”;输出结果为 “kleieilABCD”思路:定义两个计数器count和countSmall(一个统计当前字母之前的大写字母个数,另一个统计前面“大写”子串的后面小写子串字符个数)遍历字符串,当这个字符串为“大写”时,count++;遇到小写字符,则指针往后移,countSmall++;然后前面所以大写字母往后移动 (文字描述起来太费劲了,还是画个图比较明白哈哈哈哈)
代码:
import java.util.Scanner;public class MoveChar { public static void main(String[] args){ Scanner scan = new Scanner(System.in); String str = scan.nextLine(); int len = str.length(); char[] c = str.toCharArray(); int count = 0;//计算大写字母的个数 int countSmall = 0;//计算小写字母的个数 for(int i = 0; i < len; i++){ int temp = 0; //查找大写字母个数 while(i < len && c[i] <= 'Z' && c[i] >= 'A'){ temp = i; count++; i++; } //将大写字母截取存为一个临时变量 String tempStr = new String(c).substring(temp-count+1, temp+1); if(count > 0){ //查找小写字母个数,并且往前移动到合适的位置 while(i < len && c[i] <= 'z' && c[i] >= 'a'){ countSmall++; c[i-count] = c[i]; i++; } //将tempStr存储的临时子串放到合适的位置 for(int j = 0; j < count; j++){ c[temp+countSmall] = tempStr.charAt(count-j-1); temp--; } i--;//此处一定记得i需要减1 //每一轮交换完位置,需要将小写字母计算器赋值为0; countSmall = 0; } } System.out.print(c); }}
关于在牛客上跑这个代码的槽点:
我在自己的IDE运行测试用例,输出结果跟期望结果一样;但是在牛客上运行,居然不输出!!!!!!“我能怎么办,我也很无奈啊”
0 0
- 腾讯2017暑期实习生编程题-字符移位
- 算法基础-字符移位----腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题-字符移位
- 腾讯2017暑期实习生编程题--算法基础-字符移位
- 腾讯2017暑期实习生编程题——算法基础-字符移位
- 腾讯2017暑期实习生编程题-B-算法基础-字符移位
- 腾讯2017暑期实习生编程题(二)----算法基础-字符移位
- 腾讯2017暑期实习生编程题:算法基础-字符移位 [python]
- 算法与数据结构——算法题 27:字符移位(腾讯2017暑期实习生编程题) ? 待解决
- 算法与数据结构——算法题 27:字符移位(腾讯2017暑期实习生编程题) ? 待解决
- 腾讯17年暑期实习生笔试题 - 字符移位
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- lpad
- Mybatis拦截器介绍及分页插件
- http post 返回中文乱码问题
- Android开发菜鸟到高手必备的十本畅销书籍
- 音视频封装格式和编码格式
- 腾讯2017暑期实习生编程题-字符移位
- vue2.0项目快速搭建工具——vue-cli
- SpringBoot+devtools 热部署
- 聚类(上)
- js中串,去掉空格
- Python游戏系列之四_发射子弹
- Echarts-axislabel文字过长导致显示不全或重叠
- 微信小程序,返回数据给上一界面
- golang http server源码解读