java算法3~翻转字符串
来源:互联网 发布:白鲨外设淘宝店好 编辑:程序博客网 时间:2024/06/07 22:15
要求:
1、"you are a dog" 变为 great are you
2、时间复杂度O(N)
思路:
1、先将String转换成char[],
2、将char[]整体逆序,得到 god a era uoy
3、将char[]中每一个单词再逆序 dog a are you
package algorithm_database;/** * 翻转字符串:you are great 变为 great are you * */public class InverseString { public static void main(String[] args){ String str = "you are a dog"; char[] charStr = str.toCharArray(); inverse(charStr,0,charStr.length-1); System.out.println(charStr); int l = -1; int r = -1; for(int i=0;i<charStr.length;i++){ if(charStr[i] !=' '){ l = i==0 || charStr[i-1]==' ' ?i:l; //很难理解?为了找每一个单词的初始下标 r = i==charStr.length-1||charStr[i+1]==' ' ?i:r; //很难理解?为了找每一个单词的结束下标 } if(l!=-1 && r!=-1){ inverse(charStr,l,r); l = -1; r = -1; } } System.out.println(charStr); } public static char[] inverse(char[] charStr,int start ,int end){ while(start<end){ char temp = charStr[start]; charStr[start] = charStr[end]; charStr[end] = temp; start++; end--; } return charStr; }}
找下标的逻辑有些不好理解,其他的都很容易
1 0
- java算法3~翻转字符串
- 字符串翻转算法-JAVA
- 【算法】字符串翻转
- 翻转字符串算法
- 翻转字符串算法
- Java中的字符串翻转
- 翻转字符串Java实现
- Java中的字符串翻转
- java字符串翻转
- 编程:字符串翻转Java
- Java-字符串翻转
- Java中的字符串翻转
- Java实现-翻转字符串
- 字符串翻转(Java)
- java 句子翻转问题与字符串翻转
- LintCode(3):翻转字符串
- Java--让一个字符串翻转
- java实现字符串翻转功能
- bootstrap Table's Parameter
- 第十一周 项目一-验证算法(2)
- 启程
- centos6.5设定IP
- 第十一周项目1验证算法—(4)哈夫曼编码的算法验证
- java算法3~翻转字符串
- 1034. Head of a Gang (30) (并查集 & map)
- ADS1.2裸板调试mini2440串口 (含源码)
- 在查询分析器中执行update更新一个字段查询一直执行但不会成功
- Linux环境下Tomcat相关命令
- mysql 区间锁 对于没有索引 非唯一索引 唯一索引 各种情况
- 1040. Longest Symmetric String (25)
- 116. Populating Next Right Pointers in Each Node I&II
- linux基础