String相关题目(左移字符串、翻转单词序列)
来源:互联网 发布:搜狗输入法 优化版 编辑:程序博客网 时间:2024/06/06 03:16
左移字符串
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
public class Solution { //调用三遍reverse方法,借助翻转单词顺序中的方法 public String LeftRotateString(String str,int n) { if(str==null||n==0||str.length()==0)return str; char[] array=str.toCharArray(); //先把前n个字符翻转一下 reverse(array, 0, n-1); //把剩下的字符翻转一下 reverse(array, n, array.length-1); //把整个字符翻转一下 reverse(array, 0, array.length-1); return new String(array); } public void reverse(char[] chars,int low,int high){ while(low<high){ char temp=chars[low]; chars[low]=chars[high]; chars[high]=temp; low++; high--; } }}
翻转单词序列
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
//思路就是先翻转整个句子,再翻转单词public class Solution { //先翻转整个句子,再翻转单词 public String ReverseSentence(String str) { char[]chars=str.toCharArray(); //翻转整个句子 reverse(chars, 0, chars.length-1); //System.out.println(new String(chars)); int blank=-1; int nextBlank=0; for(int i=0;i<chars.length;i++){ if(chars[i]==' '){ //记录空格的位置 nextBlank=i; //翻转两个空格之间额字符 reverse(chars,blank+1,nextBlank-1); //更新空格的位置 blank=nextBlank; } } //最后翻转最后一个单词,因为之前的翻转没有到最后一个单词 reverse(chars, blank+1,chars.length-1); //把字符数组变成字符串 return new String(chars); } public void reverse(char[] chars,int low,int high){ while(low<high){ char temp=chars[low]; chars[low]=chars[high]; chars[high]=temp; low++; high--; } }}
0 0
- String相关题目(左移字符串、翻转单词序列)
- 左旋转字符串和翻转单词序列
- 翻转单词序列 vs 左旋转字符串
- 算法题目---翻转单词顺序 VS 左旋转字符串
- 翻转单词+左旋字符串
- 左旋转字符串LeftRotateString -- 翻转单词顺序
- 翻转单词顺序VS左旋转字符串
- 翻转单词顺序 VS 左旋转字符串
- 翻转单词顺序VS左旋转字符串
- 翻转单词顺序vs左旋转字符串
- 翻转单词顺序&左旋转字符串
- 翻转单词顺序VS左旋转字符串
- 翻转单词顺序VS左旋转字符串----->“字符串翻转”
- LeetCode2—String字符串中单词翻转
- 面试算法(四十二)翻转单词顺序VS左旋转字符串
- 剑指offer42:翻转单词顺序 VS 左旋转字符串(更高效、简便的解法)
- 剑指offer:翻转单词顺序VS左旋转字符串(java)
- 剑指Offer之 - 翻转单词顺序 VS 左旋转字符串
- C++显式转换(3)-const_cast
- 3.8
- jQuery下ajax的使用模板
- 【$、%】JSP页面中各种标签的使用
- SQlite 数据库增删改查-C编程简单实例
- String相关题目(左移字符串、翻转单词序列)
- NOI2017模拟3.8 总结
- JavaSE基础复习-2
- HashMap分析
- 深入了解Android蓝牙Bluetooth——《进阶篇》
- 一次性验证码
- Python程序实现打开浏览器的两种方法
- AJAX——JSON数据格式
- 表达式计算(栈/c++)