华为OJ-027

查找兄弟单词

Posted by Shaun on April 7, 2018

题目描述

实现一个可存储若干单词的字典。用户可以:

  • 在字典中加入单词
  • 查找指定单词在字典中的兄弟单词个数
  • 查找指定单词的指定序号的兄弟单词,指定序号指地点中兄弟单词按字典顺序(参见Page3)排序后的序号(从1开始)
  • 清空字典中所有单词

单词

由小写英文字母组成,不含其它字符。

兄弟单词

给定一个单词X,如果通过任意交换单词中字母的位置得到不同的单词Y,那么定义Y是X的兄弟单词。

字典排序

两个单词(字母按照自左向右顺序),先以第一个字母作为排序的基准,如果第一个字母相同,就用第二个字母为基准,如果第二个字母相同就以第三个字母为基准。以此类推,如果到某个字母不相同,字母顺序前的那个单词顺序在前。如果短单词是长单词从首字母开始连续的一部分,短单词顺序在前。

举例:bca是abc的兄弟单词;abc与abc是相同单词,不是兄弟单词

规格

0<=字典中所含单词个数<=1000

1<=单词所含字母数<=50

测试用例保证,接口中输入不会超出如上约束。

输入描述:

先输入字典中单词的个数,再输入n个单词作为字典单词。 输入一个单词,查找其在字典中兄弟单词的个数 再输入数字n

输出描述:

根据输入,输出查找到的兄弟单词的个数

示例1

输入

3	abc	bca	cab	abc	1

输出

2	bca

算法实现

实现1
//思路1:
#include <iostream>
using namespace std;
int main() {
    return 0;
}

小结

小结