小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
你能帮帮小Q吗?
你能帮帮小Q吗?
输入描述:
输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.
输出描述:
对于每组数据,输出移位后的字符串。
输入例子1:
AkleBiCeilD
输出例子1:
kleieilABCD
这道题就设计到了一个排序,我的思路是从最后第二个元素开始,如果下一个是小写的而自己是大写的,则交换位置。
import java.util.*;
public class Text{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
while(sc.hasNext())
{
String sr=sc.nextLine();
char[]s=sr.toCharArray();
int len=s.length;
for(int i=len-2;i>0;i--)
for(int j=i;j<len-1;j++)
{
if(isBig(s[j])&&!isBig(s[j+1]))
{
char temp;
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
}
}
for(char n:s)
System.out.print(n);
}
}
public static boolean isBig(char c)
{
if(c>='A'&&c<='Z')
return true;
return false;
}
}