字母重拍

import java.util.Arrays;
import java.util.Scanner;
/**
 * 字母重排
 * @author NEU-2015
 *
 */
public class Demo {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String str;
        String[] words;
        String[] sort;
        String[] NeedFindWord;
        char[] charArray;
        boolean flag;
        while (input.hasNext()) {
            str = input.nextLine();       //读取字典中的字符串
            words = str.split(" ");
            str = input.nextLine();       //读取要查找的字符

            Arrays.sort(words);           //给所有的单词排序

            sort = new String[words.length];

            for(int i = 0; i < words.length; i++) {     //将words赋值到sort中   然后将sort中每个单词的字母排序
                sort[i] = words[i];
            }

            for(int i = 0; i < sort.length; i++) {     //给每一个单词排序
                charArray = sort[i].toCharArray();
                Arrays.sort(charArray);
                sort[i] = String.valueOf(charArray);
            }

            NeedFindWord = str.split(" ");
            for(int i = 0; i < NeedFindWord.length; i++) {     //给要查找的每一个单词中的字母进行排序
                for(int j = 0; j < NeedFindWord[i].length(); j++) {
                    charArray = NeedFindWord[i].toCharArray();
                    Arrays.sort(charArray);
                    NeedFindWord[i] = String.valueOf(charArray);
                }
            }

            for(int i = 0 ; i < NeedFindWord.length; i++) {      //查找
                flag = false;
                for(int j = 0; j < sort.length; j++) {
                    if(sort[j].equals(NeedFindWord[i])) {
                        if(j == 0) {
                            System.out.print(words[j]);
                        }
                            System.out.print(" " + words[j]);
                        flag = true;
                    }
                }
                if(!flag) {                  //找不到输出-1
                    System.out.print(-1);
                }
                System.out.println();
            }
        }
    }

}

问题描述:输入一个字典,然后再输入若干单词,每输入一个单词W,都需要在字典中找到所有可以用w的字母重拍后得到的单词,并按照字典序从小到大的顺序排科ubucunz输出-1

测试数据
        targ given score refund only trap word carn course pepper part  
        resco nfudre aptr sctt oresuc
    
输出结果
        score
        refund
        part trap
        -1
        course

时间: 2024-10-26 21:11:43

字母重拍的相关文章

Android实现图片帮助跳转以及选择重拍Sqlite本地保存

publicclassChoosePhotosActivity extends BaseActivity { GridViewgridView; ImageBucketAdapteradapter;// 自定义的适配器 private ArrayList<String>list; privateArrayList<Map<String, String>> list1; private Map<String,String> map; private Map&l

Python之DataFrame更改列名及重拍列顺序

日常在处理数据的时候,经常需要对dataframe进行重排,只取其中几列或者更改列名等操作: 有两个相似的方法reindex和rename,与此记录一下常见的用法,并标注一下区别: rename:重命名,就是对col列进行命名的修改,他只改变col的名字,相当于起了个别名,原来叫col1,以后叫col2,inplace=True,用来保存更改,即更改了原表格内容: reindex:重新索引,他可以修改行和列的索引关系,从而达到修改的目的 代码: df.rename(index=str, colu

九宫重拍(bfs + 康拓展开)

问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的局面记为:12345678. 把第二个图的局面记为:123.46758 显然是按从上到下,从左到右的顺序记录数字,空格记为句点. 本题目的任务是已知九宫的初态和终态,求最少经过多少步的移动可以到达.如果无论多少步都无法到达,则输出-1. 输入格式 输入第一行包含九宫的初态,第二行包含九宫的终态. 输出格式 输出最

页面重绘与重排版的性能影响

DOM树和渲染树 当浏览器下载完所有页面HTML 标记,JavaScript,CSS,图片之后,它解析文件并创建两个内部数据结构:一棵DOM树表示页面结构,一棵渲染树表示DOM节点如何显示.      渲染树中为每个需要显示的DOM 树节点存放至少一个节点(隐藏DOM 元素在渲染树中没有对应节点).渲染树上的节点称为“框”或者“盒”,符合CSS 模型的定义,将页面元素看作一个具有填充.边距.边框和位置的盒.一旦DOM 树和渲染树构造完毕,浏览器就可以显示(绘制)页面上的元素了. 重排版 当DOM

重绘和重排

重绘:当元素的一部分属性发生改变, 如外观.背景.颜色等不会引起布局变化, 只需要浏览器根据元素的新属性重新绘制, 使元素呈现新的外观叫做重绘. 重排(回流):当render树中的一部分或者全部因为大小边距等问题发生改变而需要DOM树重新计算的过程 所以简单的来说就是.不会引起布局的变化,叫做重绘. 会引起布局的变化,叫做重排(回流) 所以在我们平时写css的时候,还是要按照html中类的顺序来写. 否者可能会造成重排,重拍是需要消耗浏览器性能的哈. 引起重排的地方 1.添加.删除可见的dom

移动应用引导设计赏析

当今移动应用引导流程的设计可谓是环肥燕瘦.有些就如同创建账户或是登录页面一样简单,而更多的则是包含了应用引导或是操作指南之类的内容.无论你打算如何设计引导流程,看看别人是怎么做的总是有价值的,并且也能从中获得一些启发. 接下来我将给大家介绍4个不同应用的引导设计——Days.Duolingo.Acorns和Authenpic. Days Days是一个倒计时应用,你可以通过它查看当前距离某一个重大事件还有多少日子.打开应用,首先映入眼帘的是一个干净简洁的欢迎页,上面有应用的Logo以及一段简短的

跟着杨中科循序渐进学习wpf(全)

第一季 C#编程基础 1.用C#编写一个10+20=?的小程序: public static voidMain(tring[] args) { int i1=10; int i2=20; int i3=i1+i2; Console.WriteLine(i3);           //也可用占位符来实现:Console.WriteLine("{0}+{1}={2}",i1,i2,i1+i2);在输出参数较多时候要用占位符 Console.ReadKey();             

前端向后台的华丽转身 — PHP基础篇

这一次,本K带大家来看一下关于PHP中数组.字符串的一些注意事项和函数(方法). 一.PHP中的数组 (一)PHP中的数组简介 数组类型是PHP两种复合数据类型之一.根据下标的不同,可以将PHP中的数组分成关联数组和索引数组:前者指下标为字符串格式,每个下标字符串与数组的值一一对应:后者下标为数字,与JS中的数组下标相同,但在一些规则上与JS相差甚远(后述). 关于关联数组与索引数组,以及其与JS中数组的某些不同,有如下五条大致可以概括: 1.数组中,可以同时存在索引数组和关联数组 array(

2017JAVA面试题附答案

JAVA基础 JAVA中的几种基本类型,各占用多少字节?   String能被继承吗?为什么? 不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变.平常我们定义的String str="a";其实和String str=new String("a")还是有差异的. 前者默认调用的是String.valueOf来返回String实例对象,至于调用哪个则取决于你的赋值,比如String num=1,调用的是 public