对于一个给定的字符串,我们需要在线性(也就是O(n))的时间里对它做一些变形。首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把着个字符串中由空

Posted littleswan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对于一个给定的字符串,我们需要在线性(也就是O(n))的时间里对它做一些变形。首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把着个字符串中由空相关的知识,希望对你有一定的参考价值。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Transform
private String upperAndLower(String s)
StringBuilder sb=new StringBuilder();
for(int i=0,len=s.length();i<len;i++)
char ch=s.charAt(i);
if(ch>=‘a‘ && ch<=‘z‘)
sb.append((char)(ch-‘a‘+‘A‘));
else
sb.append((char)(ch-‘A‘+‘a‘));


return sb.toString();

private String ListToString(List<String> list)
StringBuilder sb=new StringBuilder();
for(int i=0,len=list.size();i<len;i++)
String s=list.get(i);
if(i==0 && " ".equals(s))
continue;

if(i>0)
sb.append(" ");

sb.append(s);

return sb.toString();

public String trans(String s, int n)
List<String> list=new ArrayList<String>(Arrays.asList(s.split(" ")));
Collections.reverse(list);
List<String> res=new ArrayList<String>();
for(String str:list)
if(" ".equals(str)==true) continue;
res.add(upperAndLower(str));

if(s.endsWith(" ")==true)
res.add(0," ");

return ListToString(res);

原博文链接

https://blog.csdn.net/qq_17612199/article/details/51206446

这道题的思路为,首先将原来的字符串进行切割,然后通过collection集合中的reverse进行将字符串进行反转操作。然后通过if条件判断将集合中的每个元素进行转换。就可以得到自己想要的元素了。

然后再将集合转换为字符串。

以上是关于对于一个给定的字符串,我们需要在线性(也就是O(n))的时间里对它做一些变形。首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把着个字符串中由空的主要内容,如果未能解决你的问题,请参考以下文章

字符串的变形

字符串变形(NC89/考察次数Top68/难度简单)

字符串变形(NC89/考察次数Top68/难度简单)

字符串变形(NC89/考察次数Top68/难度简单)

在线性时间内创建图案化阵列 [重复]

字符串的后缀也是 O(n) 中相同字符串的前缀