一、单词倒序
1、题目描述: 输入单行英文句子,里面包含英文字母,空格以及,.? 三种标点符号,请将句子内每个单词进行倒序,并输出倒序后的语句
2、示例如下:
3、代码如下:
import java.util.*;
public class danCiDaoXu {
//方法一:倒序输出
//public static void main(String[] args) {
// Scanner sc=new Scanner(System.in);
// boolean isChar=false;
// while (sc.hasNext()){
// String str=sc.next();
// for(int i=str.length()-1;i>=0;i--){
// if(str.substring(i).equals(".")||str.substring(i).equals(",")){
// isChar=true;
// continue;
// }
// System.out.print(str.substring(i,i+1));
// }
// if(isChar==true){
// System.out.print(str.substring(str.length()-1));
// isChar=false;
// }
// System.out.print(" ");
// }
//}
//方法二:翻转输出
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while (sc.hasNext()){
String str=sc.next();
String rev=new StringBuffer(str).reverse().toString();
String ans="";
if(rev.substring(0,1).matches("[,.?]")){ //正则表达式
ans=rev.substring(1)+rev.substring(0,1);
}else {
ans=rev;
}
System.out.print(ans+" ");
}
}
}
二、分界线
1、题目描述: 电视剧《分界线》里面有一个片段,男主为了向警察透露案件细节,且不暴露自己,于是将报刊上的字剪切下来,剪拼成匿名信。
现在有一名举报人,希望借鉴这种手段,使用英文报刊完成举报操作。
但为了增加文章的混淆度,只需满足每个单词中字母数量一致即可,不关注每个字母的顺序。
解释:单词’on’允许通过单词’no’进行替代
报纸代表newspaper, 匿名信代表anonymousLetter, 求报纸内容是否可以拼成匿名信。
2、示例如下:
3、代码如下:
import java.util.*;
public class fenJieXian {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String[] newspaper=sc.nextLine().split(" "); //切割字符串数组
String[] anonymousLetter=sc.nextLine().split(" ");
boolean res=true;
for (String anony:anonymousLetter){
for (int i=0;i<newspaper.length;i++){
String news=newspaper[i];
if(anony.length()==news.length()&&handle(news,anony)){ //长度相等是防止越界
newspaper[i]=" "; //匹配过的就不用再匹配了
break;
}
if(i==newspaper.length-1){ //如过到最后一个了还没匹配成功,视为失败
res=false;
}
}
if(!res){ //一旦发现有匹配不成功的,直接false
break;
}
}
System.out.println(res);
}
public static boolean handle(String news,String anony){
char[] newsChar=news.toCharArray();
char[] anonyChar=anony.toCharArray();
Arrays.sort(newsChar);
Arrays.sort(anonyChar);
boolean isTrue=true;
for(int i=0;i<newsChar.length;i++){ //和每一个字符串都尝试匹配
if(newsChar[i]!=anonyChar[i]){ //只要有一个不匹配,就输出false
isTrue=false;
}
}
return isTrue;
}
}