查找兄弟单词(牛客)

2023-05-16

题目描述:

兄弟单词:给定一个单词X,如果通过任意交换单词中字母的位置得到的新的单词Y,那么称X和Y是兄弟单词。注意:bca和abc是兄弟单词,abc和abc是相同单词,不是兄弟单词

这个题的出题人真是让人呵呵了

输入描述:

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

3 abc bca cab abc 1

输出描述:

根据输入,输出查找到的兄弟单词的个数m 
然后输出查找到的兄弟单词的第k个单词。

注意:所有输入的单词,必须按照字典排序。且当k>m时候,不输出兄弟单词。输出要用回车间隔开

2
bca

做题思路:

唯一让人提起兴趣的也就是兄弟单词的判定了。首先判断是不是相同单词,然后对每个单词内部进行类似于字典排序,那么acbd和adbc都会转变为abcd,也就是说对单词内部进行排序后判断是否相等即可。

注意:

对vector进行sort排序,那么vector内部必须有值。例如:

vector<int> a(100); //内部有一百个值
a.clear(); //内部有0个值
cin>>a[0]>>a[1]; //虽然可以调用两个值,但是a.size()是0
a.push_back(0); //因为是clear后第一次push_back,所以这个值是放在了a[0]当中
sort(a.begin(),a.end()); //也是要求里面有值,这个值必须是push_back进去的
也就是说cin的数据可以通过下标调用,但是不被vector的函数承认

AC代码:

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
bool isBrother(string source,string word); //判断是否是兄弟单词 
int main()
{
	vector<string> word(1000); //放置字典单词 
	
	string source; //被查询的单词
	string target; //第k个兄弟单词 
	
	int num; //字典单词总数 
	int k; //指定查找第k个兄弟单词  
	
	while( cin>>num ){  //cin遇到文件结束符(EOF即crtl+z就会停止输入) 
		word.clear();
		int total=0; //记录兄弟单词的总数 
		for(int i=0; i<num; i++){
			cin>>source;
            word.push_back(source);
		}
		cin>>source>>k;
		
		sort(word.begin(),word.end());//天坑,想使用sort对vector排序,那么vector内部的数据必须是push_back进去的
		
		for(int i=0; i<num; i++){
			if( isBrother(source,word[i]) ){
				total++;
				if( total==k ){
					target = word[i]; //获取第K个单词 
				}
			} 
		}
		
		if( num!=0 ){
            cout<<total<<endl;
        }
        if( k<=total ){
            cout<<target<<endl; 
        }
	}
	
	return 0;
} 
bool isBrother(string source,string word)
{
	if( source==word ){
		return false;
	}
	sort(source.begin(),source.end());
	sort(word.begin(),word.end());
	if( source==word ){
		return true;
	}else{
		return false;
	}
} 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找兄弟单词(牛客) 的相关文章

  • 国内银行卡BIN号(Bank Identification Number)速查简表

    转载 xff1a https blog csdn net qq 37960324 article details 82981824 国内银行卡BIN号 Bank Identification Number 速查简表 银行名称 银行卡 卡BI
  • 判断一个对象是否为数组的4种方法

    问题描述 在js中判断数据类型通常使用typeof xff0c 但是typeof在判断数组和对象时的结果都是object console span class token punctuation span span class token
  • 去重三种方法

    数组去重三种方法 问题情境 去除数组中重复的元素 输出不重复的元素数组 思路方向 将数组中重复的元素删除将数组中不重复的元素取出利用其它 JavaScript 特性和 API 直接去重 这一思路中有些 API 涉及ES6中的某些知识暂不提及
  • 百度地图API简介

    百度地图API 简介 百度地图API是百度地图开放平台面向广大政府 企业 互联网等开发者开放的免费地图服务 拥有定位 地图 导航 轨迹 路况 路线规划 搜索 xff0c 七大基础地图服务能力 xff0c 并将七大服务能力开放给各行业开发者使
  • svg和canvas的区别简析

    Canvas和SVG是html5中支持2种可视化技术 xff0c 都是可以在画布上绘制图形和放入图片 下面来介绍和分析一下他们 一 Canvas 和 SVG 简介 1 什么是Canvas xff1f Canvas 是H5新出来的标签 Can
  • 微信小程序:实现长按扫描二维码

    小程序内置扫描二维码 image 使用小程序提供的image组件 xff0c image组件上有一个show menu by longpress的属性 xff0c 设置为true lt image show menu by longpres
  • 微信小程序:小程序常见问题及解决方案

    文章目录 原生组件显示在遮罩层上面的问题scroll view高度适配问题表单控件聚焦后页面上推问题小程序web view页面返回到小程序页面 原生组件显示在遮罩层上面的问题 在小程序中使用原生的表单组件时 xff0c 在有弹出框出现的情况
  • Echarts:惊艳的Map

    大家在网上看天气预报的时候应该就看到过在中国地图上显示不同省份的温度 xff0c 并根据温度的高低显示不同的颜色 xff0c 又或者看到各个省份的新冠肺炎新增人数 xff0c 根据不同的新增人数显示不同的颜色之类的图像 这些 xff0c 使
  • 微信小程序性能优化

    文章目录 小程序优化首屏加载优化白屏优化运行时性能渲染性能优化页面切换优化 小程序优化 首屏加载优化 删除无用代码 资源文件 开启按需加载组件 span class token comment app json span span clas
  • webStorage

    cookie 在webStorage出现之前在浏览器端存储数据通常使用cookie cookie是某些网站为了辨别用户身份 xff0c 进行Session跟踪而储存在用户本地终端上的数据 xff08 通常经过加密 xff09 xff0c 由
  • alembic 命令的使用

    初始化 alembic init alembic 查看历史head alembic span class token function history span span class token operator span span cla
  • centos 6 镜像源不再可用

    2020 12 02 centos 停止更新centos 6 xff0c 官网镜像源不可用 http mirror centos org centos 6 6 readme This directory and version of Cen
  • Linux安装配置vnc

    1 检测 vnc有没有安装 rpm qa grep tigervnc 或 rpm qa grep vnc 显示如下信息 xff0c 证明 vnc已经安装 1 1 若未安装 xff0c 安装步骤如下 1 1 1 cd 到 vnc 安装包目录下
  • shell变量的五种赋值方式

    shell变量的赋值https blog 51cto com u 14881361 2673174 一 直接赋值 格式为 xff1a 变量名 61 变量值 x1f416 直接赋值时禁止在 等号 61 两端添加空格 span class to
  • CommonJS和ES6模块化的区别

    ES6 模块与 CommonJS 模块存在以下差异 xff1a 1 语法上 CommonJS 使用的是 module exports 61 导出一个模块对象 xff0c require file path 引入模块对象 xff1b ES6使
  • bug解决: Cause: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 6; 不允许有匹配 “[xX][mM][lL]“ 的

    Exception encountered during context initialization span class token operator span cancelling refresh attempt span class
  • 云计算基础

    待到秋来九月八 xff0c 我花开后百花杀 数据中心发展阶段企业自建EDCIDC托管 租用云计算三者对比 云计算核心特征云计算参考模型云计算的关键特点按需服务资源池化弹性扩展泛网络访问服务可度量 云计算服务模式云计算技术架构云计算的4个部署
  • 前端npm或yarn装包踩坑——安装超时失败,设置镜像源不生效

    问题描述 xff1a 使用npm或yarn进行安装依赖包时 xff0c 无响应超时 xff0c 随即设置镜像源指向淘宝镜像 xff0c 但始终不生效 问题原因 xff1a 无响应 网络等原因 xff0c 导致npm或yarn装包失败 xff
  • Ubuntu中安装ClamAV防病毒软件

    环境 Ubuntu 16 04 软件安装 ClamAV http www clamav net documents installing clamav 源码链接 http www clamav net downloads productio

随机推荐