HWOD:对n个字符串按照字典序排序

一、知识点

1、pow函数

引用头文件math.h

求x的y次方

2、链接数学库

math.h头文件对应的库名称是libm

sudo  find  /  -name  libm.so  -print

ls  /usr/lib/x86_64-linux-gnu/

 链接命令:gcc  xxx.c  -L.  -lm

3、52进制

A的ASCII码是65,Z的ASCII码是90,a的ASCII码是97,z的ASCII码是122

大小写字母总共是52个

从A到Z,分别对应0到25

从a到z,分别对应26到51

二、题目

1、描述

给定n个字符串,请对n个字符串按照字典序排列

2、数据范围

1<=n<=100,字符串长度满足:1<=len<=100

3、输入描述

输入第一行为一个正整数n(1<=n<=1000),下面n行为n个字符串(字符串长度<=100),字符串中只含有大小写字母

4、输出描述

数据输出n行,输出结果为按照字典序排列的字符串

三、自己的解题思路

设置52进制

从A到Z,用数字0到25表示

从a到z,用数字26到51表示

字符串长度为100,下标从0到99,权重分别是pow(52,99),pow(52,98)..............pow(52,0)

下标为i的字母的数值用temp(0~51)表示,所以,该字母的权重就是temp*pow(52,99-i);

字符串的权重就是字符串所有字母权重的和

所有字符串的权重从小到大的排序就是所有字符串的字典序排序

四、自己写的代码

#include<stdio.h>
#include<math.h>
int main() {int n, i, j, temp;double min;scanf("%d", &n);char line[n][102];double weight[n];for (i = 0; i < n; i++) {scanf("%s", line[i]);}for (i = 0; i < n; i++) {weight[i] = 0;j = 0;while (line[i][j] != '\0') {if (line[i][j] <= 'Z') {temp = line[i][j] - 'A';} else {temp = line[i][j] - 'a' + 26;}weight[i] += temp * pow(52, (99 - j));j++;}}while (1) {min = pow(52, 102);for (i = 0; i < n; i++) {if (weight[i] < min) {min = weight[i];}}if (pow(52, 102) - min < 1) {break;}for (i = 0; i < n; i++) {if (weight[i] - min < 1) {printf("%s\n", line[i]);weight[i] = pow(52, 102);i = n;}}}return 0;
}

五、测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/572231.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ROS 2边学边练(2)-- 咱也玩玩Turtlesim

同ROS 1一样&#xff0c;Turtlesim(小海龟)例程往往是大家首次熟悉ROS世界的唯一不二之选&#xff08;如同刚接触编程的同学&#xff0c;老师会让大家打出“Hello World”的道理一样&#xff09;&#xff0c;很多教学视频及书籍也同样如此&#xff0c;为何&#xff1f;麻雀虽小…

java项目:基于JavaWeb实现企业员工工资管理系统(技术栈:javaweb+jsp+mysql 源码+数据库)

一、项目简介 本项目是一套基于ServletJsp实现的学生成绩管理系统&#xff0c;主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目可以直接作为bishe使用。 项目都经过严格调试&#xff0…

基于java+springboot+vue实现的校园二手交易系统(文末源码+Lw+ppt)23-336

摘 要 自从新冠疫情爆发以来&#xff0c;各个线下实体越来越难做&#xff0c;线下购物的人也越来越少&#xff0c;随之带来的是一些不必要的浪费&#xff0c;尤其是即将毕业的大学生&#xff0c;各种用品不方便携带走导致被遗弃&#xff0c;造成大量的浪费。本系统目的就是让…

docker关闭全部运行容器命令是什么?

环境&#xff1a; docker v22.1 问题描述&#xff1a; docker关闭全部运行容器命令是什么&#xff1f; 解决方案&#xff1a; 要关闭所有正在运行的Docker容器&#xff0c;可以使用如下命令&#xff1a; docker stop $(docker ps -a -q)这条命令首先执行 docker ps -a -q…

主流公链 - Solana

探索Solana区块链&#xff1a;下一代高性能区块链平台 1. Solana简介 Solana是一个高性能的区块链平台&#xff08;TPS能达到10W级别&#xff09;&#xff0c;旨在实现高吞吐量和低延迟的区块链交易处理。它采用了一系列创新技术&#xff0c;其中包括Proof of History (PoH)&a…

OD C卷 - 分披萨

分披萨 有大小不同的奇数块披萨&#xff1b;从A开始轮流取披萨&#xff0c;第一块可以任意选取&#xff0c;其他都必须从缺口开始选&#xff1b;B每次都选最大块的&#xff0c; A知道B的想法&#xff1b;求A能获得的披萨块总和的最大值&#xff1b; 输入描述&#xff1a; 第一…

RSTP、MSTP、VRRP

RSTP协议原理与配置 问题一、STP的收敛延时&#xff08;30秒&#xff08;有BP端口情况下RP端口down&#xff09;或者50秒&#xff08;没有BP端口情况下RP端口down&#xff09;&#xff09; RSTP&#xff1a;Rapid Spanning Tree Protocol RSTP和STP从原理流程上一样&#xf…

Springboot整合Redis报错:Unable to connection Redis

今天在做Springboot整合Redis中碰到下列错误&#xff1a; 基于以上的错误首先在Xshell或者其他远程操控虚拟机的软件上看能不能连接到Redis: [zzllocalhost ~]$ redis-cli -h 192.168.136.132 -p 6379 -a ****** Warning: Using a password with -a or -u option on the comma…

修复ubuntu引导

一、制作ubuntu启动U盘 进入启动盘后&#xff0c;点击Try ubuntu&#xff0c;进入U盘的ubuntu系统。 二、配置和添加源 sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update三、运行 Boot Repair重新制作引导 sudo boot-repair注意&#x…

JavaScript、ES6与微信小程序:工具箱、升级与新房子

JavaScript、ES6和微信小程序三者之间有什么联系&#xff1f;我想&#xff0c;作为初学者还是有点蒙。下面作一个简单的分析&#xff0c;供大家参考。 首先,我们可以把JavaScript想象成一个非常强大的工具箱,里面装满了各种各样的工具。这些工具可以帮助我们完成各种任务,比如…

STM32G4 TIM1触发ADC转换

STM32G4 TIM1触发ADC转换 &#x1f4cd;相关篇《HAL STM32G4 ADC手动触发采集各种滤波算法实现》&#x1f388;《HAL STM32G4 TIM1 3路PWM互补输出VOFA波形演示》&#x1f4cd;《HAL STM32G4内部运放的使用》 ✨继欧拉电子无刷电机驱动相关视频学习 – STM32G4 FOC开发实战—TI…

谷歌Google广告推广开户和投放攻略?

随着出海市场增加&#xff0c;越来越多的中国企业选择借助谷歌Google广告这一全球最大的在线广告平台&#xff0c;拓展海外市场&#xff0c;提升品牌知名度和产品销量。在这个过程中&#xff0c;选择一家专业且富有实战经验的服务商至关重要&#xff0c;而云衔科技正是这样一位…