Java实现字符数组单词反转
来源:互联网 发布:棉被芯什么牌子好 知乎 编辑:程序博客网 时间:2024/05/21 17:01
今天笔试时遇到一个题目:
有一段英文用空格隔开,不包含标点符号,如: what are you doing 需输出格式如下doing you are what。要求只能借助定长的内存。
答题的时候一时不知从何下手,然后就用到了 StringBuilder和Stack 虽然能实现输出结果但是却用到了不定长度的内存空间,自然不符合要求。于是下来百度了一番,发现大体思路为:
1 全部倒排:如 what are you doing => gniod uoy era tahw
2 按照空格将每个单词执行步骤1 即: gniod => doing uoy => you era => are tahw=>what
知道思路之后具体代码如下:
public class ReverseString {
public void reverseString( char[] input , int first , int last ){ //对字符数组input 指定范围内的元素 倒排序
char _temp = ' ' ;
while( first < last ){
_temp = input[first] ;
input[first] = input[last] ;
input[last] = _temp ;
first++ ;
last-- ;
}
}
public void reverAllWord( char[] input ){ //对字符数组input按照空格进行分割成各个段,然后倒排序
int first = 0 ;
int last = 0 ;
while( last < input.length ){
if( input[last] == ' '){
if( input[last-1] != ' ' ){ //此处拼除掉多个连续的空格的情况
reverseString(input , first , last - 1 );
}
first = last + 1 ;
}
last ++ ;
}
if( first < last -1 ){ //此处保证 倒数第一个空格之后的字符进行倒排序
reverseString(input , first , last - 1 );
}
}
public static void main(String[] args) {
ReverseString _rs = new ReverseString() ;
char[] input = new char[]{'w','h','a','t',' ',' ',' ','a','r','e',' ','y','o','u',' ','d','o','i','n','g'};
_rs.reverseString(input, 0, input.length-1);
for( char _char : input ){
System.out.print(_char);
}
_rs.reverAllWord(input);
System.out.println(" ");
for( char _char : input ){
System.out.print(_char);
}
}
- Java实现字符数组单词反转
- 字符数组中单词反转问题
- JAVA实现字符串反转,借助字符数组实现
- java算法实现"输入一个英文句子,反转句子中的单词顺序,但单词内字符的顺序不变"
- Java实现字符串中的单词反转
- 用递归实现字符数组的反转
- 实现字符数组中的单词倒序输出
- 字符数组反转
- java实现腾讯笔试反转字符串中的单词
- 字符数组单词逆序
- 字符串反转,单词不反转实现
- 实现字符串中单词反转
- Java实现数组反转翻转的方法
- 编写一个单词反转,字符不反转的函数。
- 实现数组反转
- C语言来实现字符串反转(只有单词反转,单词里的字母不反转)
- C语言来实现字符串反转 只有单词顺序反转,单词里的字母不反转
- 单词反转实现(使用栈内存)
- 【万里征程——Windows App开发】ListView&GridView之分组
- UVa 11584 - Partitioning by Palindromes [动规]
- 讨论main函数执行结束后还能在执行一段代码吗?
- 多态和重载的区别
- iOS开发中的绘图-Quartz2D-
- Java实现字符数组单词反转
- 语法小问题
- Python笔记——类定义
- 【学习笔记】TextField
- 解惑:NFC手机如何轻松读取银行卡信息?
- 第四周 阅读程序 6
- 猫猫学IOS(十六)UI之XIB自定义Cell实现团购UI
- 垂直居中的7种方法
- 银行卡BIN码大全