当前位置: 首页 > news >正文

华为机试 HJ27 查找兄弟单词

题目链接:https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68?tpId=37&tqId=21250&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3Fdifficulty%3D3%26page%3D1%26pageSize%3D50%26search%3D%26tpId%3D37%26type%3D37&difficulty=3&judgeStatus=undefined&tags=&title=

描述
定义一个单词的“兄弟单词”为:交换该单词字母顺序(注:可以交换任意次),而不添加、删除、修改原有的字母就能生成的单词。
兄弟单词要求和原来的单词不同。例如: ab 和 ba 是兄弟单词。 ab 和 ab 则不是兄弟单词。
现在给定你 n 个单词,另外再给你一个单词 x ,让你寻找 x 的兄弟单词里,按字典序排列后的第 k 个单词是什么?
注意:字典中可能有重复单词。

数据范围:1≤n≤1000 ,输入的字符串长度满足 1≤len(str)≤10 ,1≤k<n
输入描述:
输入只有一行。 先输入字典中单词的个数n,再输入n个单词作为字典单词。 然后输入一个单词x 最后后输入一个整数k
输出描述:
第一行输出查找到x的兄弟单词的个数m 第二行输出查找到的按照字典顺序排序后的第k个兄弟单词,没有符合第k个的话则不用输出。
示例1
输入:
3 abc bca cab abc 1
复制
输出:
2
bca
复制
示例2
输入:
6 cab ad abcd cba abc bca abc 1
复制
输出:
3
bca
复制
说明:
abc的兄弟单词有cab cba bca,所以输出3
经字典序排列后,变为bca cab cba,所以第1个字典序兄弟单词为bca

solution:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;int n, k, num = 0, cnt[26];
string s, res;
vector<string> arr, bro;//判断是否兄弟单词
bool is_bro(string str)
{int ct[26] = {0};for (int i = 0; i < str.length(); ++i) {++ct[str[i] - 'a'];}for (int i = 0; i < 26; ++i) {if (ct[i] != cnt[i])return false;}return true;
}void findbro()
{//计数目标单词的各字母出现次数for (int i = 0; i < s.length(); ++i)++cnt[s[i] -'a'];//遍历字典找出所有兄弟单词for (int i = 0; i < n; ++i) {if (arr[i].length() != s.length())continue;if (is_bro(arr[i]) && arr[i] != s){bro.push_back(arr[i]);}}
}int main() {cin >> n;arr.resize(n);for (int i = 0; i < n; ++i)cin >> arr[i];cin >> s >> k;findbro();cout << bro.size() << endl;if (bro.size() >= k){sort(bro.begin(), bro.end());cout << bro[k - 1] << endl; } 
}
http://www.lryc.cn/news/33445.html

相关文章:

  • 佩戴舒适的蓝牙耳机有哪些?佩戴舒适的蓝牙耳机推荐
  • ESXI主机安装Zabbix 6.2
  • 【Linux 网络编程1】使用UDP/TCP编写套接字,多进程/多线程版本的TCP编写的套接字,将套接字封装
  • 滑动窗口求最大和最小
  • 跟ChatGPT学量化,菜鸟炒股也不怕
  • 扬帆优配|2600亿新能源巨头狂飙!外资唱多中国:再涨15%
  • ChatGPT技术与商业模式及产业发展布局方案
  • CIMCAI port ai shipping ai artificial intelligence smart port
  • 《数据解构》HashMap源码解读
  • Databend 开源周报 第 83 期
  • Spring | 基础
  • windows7安装sql server 2000安装步骤 及安装过程中遇到的问题和解决方式
  • Python 开发-批量 FofaSRC 提取POC 验证
  • Linux系统中部署软件
  • PHP常用框架介绍与比较
  • Umi + React + Ant Design Pro 项目实践(一)—— 项目搭建
  • MySQL知识点总结(1)
  • day45第九章动态规划(二刷)
  • 第十四届蓝桥杯第三期模拟赛原题与详解
  • client打包升级
  • Blazor_WASM之3:项目结构
  • OperWrt 包管理系统02
  • 人人都学会APP开发 提高就业竞争力 简单实用APP应用 安卓浏览器APP 企业内部通用APP制作 制造业通用APP
  • 【自然语言处理】从词袋模型到Transformer家族的变迁之路
  • LIME: Low-light Image Enhancement viaIllumination Map Estimation
  • 源码指标编写1000问4
  • Golang中GC和三色屏障机制【Golang面试必考】
  • MOS FET继电器(无机械触点继电器)设计输入侧电源时的电流值概念
  • 5. 驱动开发
  • 模板方法模式详解