两种排序方法

  • 题目描述
  • 题目分析
  • 代码实现

题目链接:两种排序方法

题目描述

考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法:
1.根据字符串的字典序排序。例如:
“car” < “carriage” < “cats” < “doggies < “koala”
2.根据字符串的长度排序。例如:
“car” < “cats” < “koala” < “doggies” < “carriage”
考拉想知道自己的这些字符串排列顺序是否满足这两种排序方法,考拉要忙着吃树叶,所以需要你来帮忙验证。
输入描述:
输入第一行为字符串个数n(n ≤ 100) 接下来的n行,每行一个字符串,字符串长度均小于100,均由小写字母组成
输出描述:
如果这些字符串是根据字典序排列而不是根据长度排列输出"lexicographically”,
如果根据长度排列而不是字典序排列输出"lengths",
如果两种方式都符合输出"both",否则输出"none"

题目分析

根据题意得这里给定了一堆字符串,需要进行判断这堆字符串是依据长度进行排序的还是依据字典序进行排序的。字典序也就是字符串进行比较大小的顺序。而长度则是比较每个字符串的长度。因此这里可以分别进行判断,使用一个bool类型的函数,如果始终满足字典序(长度顺序)则可以返回true,如果出现不满足的情况则返回false。根据是否满足字典序或者长度顺序还是两种都满足可以进行最终的输出.代码实现如下:

代码实现

#include<iostream>
#include<string>
#include<vector>
using namespace std;bool IsLengths(const vector<string>& v)
{for(size_t i=0;i<v.size() - 1;i++){if(v[i].size()>v[i+1].size())//判断前一个是否小于后一个{return false;}}return true;
}bool Islexicographically(const vector<string>& v)
{for(size_t i=0;i<v.size() - 1;i++){if(v[i] > v[i+1])//判断前一个是否小于后一个{return false;}}return true;
}int main()
{vector<string> v;int n=0;cin >> n ;v.resize(n);//设置v中元素个数for(size_t i=0;i<v.size();i++){cin>>v[i];//输入各个字符串}bool lsort = IsLengths(v);//判断是否为长度序bool csort = Islexicographically(v);//判断是否为字典序if(lsort && csort){cout<<"both"<<endl;}else if(lsort){cout<<"lengths"<<endl;}else if(csort){cout<<"lexicographically"<<endl;}else{cout<<"none"<<endl;}return 0;
}

牛客刷题——两种排序方法相关推荐

  1. 刷题日记【第四篇】-笔试必刷题【Fibonacci数列+合法括号序列判断+两种排序方法+求最小公倍数】

    目录 选择题模块 1. 以下对继承的描述错误的是(A) 2. 在Java中,一个类(B) 3. 以下不是Object 类的方法的是(D) 4. Test.main() 函数执行后的输出是(D) 编程题 ...

  2. 牛客刷题-Java面试题库【动态更新添加题目】(2023.06.19更新)

    讲在前面 ✨ 牛客刷题日记–理解为重中之重 刷题一方面是持续的了解到自己哪方面比较欠缺,另一方面也是从各大厂的面试题可以看出当前所需的技术栈的偏重点,持续的巩固基础和查漏补缺,一如代码深似海–学无止境 ...

  3. 牛客刷题日记(2021-12-8)

    牛客刷题日记(2021-12-8) 题目: 以下哪个接口的定义是正确的?( )interface B { void print() { } ;}interface B { static void pr ...

  4. 【Shell牛客刷题系列】SHELL5 打印空行的行号:一起学习grep命令搭配正则表达式的使用

    该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...

  5. 最长上升子序列(LIS),牛客刷题

    目录: 最长上升子序列(LIS) 1.模板(数据较小) 2.模板(数据较大) 牛客刷题 1. 牛客练习赛107A:如见青山 2.牛客小白月赛65A牛牛去购物 3.牛客小白月赛65B牛牛去购物 4.牛客 ...

  6. 【字符串2】(删除公共字符、合法括号序列判断、两种排序方法、密码强度等级)

    字符串题集 1. 删除公共字符 题目描述 题目分析 C++代码 2. 合法括号序列判断 题目描述 题目分析 C++代码 3. 两种排序方法 题目描述 题目分析 C++代码 4. 密码强度等级 题目描述 ...

  7. 牛客刷题日记(2021-11-24)

    牛客刷题日记(2021-11-24) 题目: 下面程序的输出是:() String x="fmn"; x.toUpperCase(); String y=x.replace('f' ...

  8. 【字节面试题】牛客刷题偶遇字节后端笔试面经 撸它

    想要看更加舒服的排版.更加准时的推送 关注公众号"不太灵光的程序员" 每日八点有干货推送,微信随时解答你的疑问 牛客刷题偶遇 字节后端笔试0715 撸它 一共两道编程题. 1. 给 ...

  9. 按照姓名升序排序的代码_好程序员Java培训分享Java集合的两种排序方法

    好程序员Java培训分享Java集合的两种排序方法,Java集合的工具类Collections中提供了两种排序的方法,分别是: 1.Collections.sort(List list) 2.Coll ...

  10. 两种排序方法(直接判断)

    题目描述 考拉有n个字符串字符串,任意两个字符串长度都是不同的.考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序.例如: "car" < "car ...

最新文章

  1. 为什么你用matplotlib savefig保存下来的图像是一个空白图片?
  2. 记录一些使用git过程中的bug
  3. 13_Android的生命周期
  4. java引用传递106_(转载)java的值传递与引用传递
  5. Hbase Region in transition (RIT) 异常解决
  6. 多系统精密星历下载与分析
  7. ubuntu 安装opensips osip exosip
  8. thinkphp6代码生成器
  9. BGP 自动路由聚合
  10. JAVASE整理知识点
  11. html文件变成桌面背景,将HTML文档设置为Windows桌面背景
  12. 6.22 android计算字符高度宽度,红蓝3D图片的制作原理及NDK生成实现
  13. 基于java的学生学籍管理系统(含源文件)
  14. 《张宇考研数学基础30讲》思维导图-第2讲 数列极限
  15. 盘古石杯电子取证比赛WP
  16. 基于非对称纳什谈判的多微网电能共享运行优化策略
  17. 什么是“蓝牙距离感应装置”
  18. JS 获取输入时间的前一年、前三个月
  19. bad SQL grammer []; nested exception is java.sql.SQLSyntaxErrorException:ORA-00918:未明确定义列
  20. 第四周——爬虫入门 Day3 7.20

热门文章

  1. 上传图片报Invalid filename错误
  2. 用欧拉公式推导三角函数所有公式包括 倍角公式-半角公式-和差化积-积化和差...
  3. 微信小程序获取位置信息基于腾讯地图实现
  4. linux下XAMP集成开发环境搭建流程总结
  5. 腾讯实习结束总结+感悟
  6. Centos7.5部署MySQL5.7基于GTID主从复制+并行复制+半同步复制+读写分离(ProxySQL) 环境- 运维笔记 (完整版)
  7. java邮件增加签名_Java对文件添加数字签名
  8. web前端期末大作业:旅游网页主题网站设计——桂林旅游网站的设计 (7页)HTML+CSS+JavaScript web网页设计与开发 静态网页的制作 web期末作业设计网页 web结课作业的源
  9. 使用python绘制3维正态分布图
  10. 社交 APP 唔哩星球完成数百万元天使轮融资,投资方为启明创投