仓颉刷题录-字符串数字转换(一)
文章目录
- 背景
- 题目:交换后字典序最小的字符串
- 个人感受
这是双子专栏: Cangjie仓颉程序设计-个人总结
本专栏还在持续更新: 仓颉编程cangjie刷题录
背景
报名了一个仓颉的比赛,感觉条件要求挺低的,就想上。哈哈哈。但是学起来真是很糟心,没有资料,只有官方文档,官方文档写的也就那样。一天下来就刷了这么一道简单题。
题目:交换后字典序最小的字符串
题目链接
给你一个仅由数字组成的字符串 s,在最多交换一次 相邻 且具有相同 奇偶性 的数字后,返回可以得到的字典序最小的字符串。
如果两个数字都是奇数或都是偶数,则它们具有相同的奇偶性。例如,5 和 9、2 和 4 奇偶性相同,而 6 和 9 奇偶性不同。
class Solution {func getSmallestString(s: String): String {var arr = Array(s) // Array<UInt8>var zero = "0" // Stringfor (i in 0..s.size-1) {var a = arr[i] - zero[0] // UInt8var b = arr[i + 1] - zero[0]if (a > b && a % 2 == b % 2) {var t = arr[i]arr[i] = arr[i + 1]arr[i + 1] = tbreak}}var res = Array<Rune>(s.size) {i => Rune(0)}for (i in 0..s.size) {res[i] = Rune(arr[i])}return String(res)}
}
个人感受
这个语言六月份正式发布,属于是gpt都没学过的存在,网上资料也基本都是抄官方文档。所以写起来就究极蛋疼!
我就是想随便选一道题先试试水,谁知道遇到了cangjie的一系列大槽点:
- cangjie默认字符为Unicode编码,而且String类型的单个元素取出来类型竟然是一个字节的整型UInt8!
- 字符只支持转换为32字节的无符号整型UInt32。
- 字符串不支持修改
本来Unicode我都懵了,这还咋玩字符和数字的转换,搜了一下发现值在一个字节内的简单字符Unicode值与ASCII值相同的,这让我松了一口气。
然而,上面三点一列我就试了一天怎么弄。妈的官方的String文档那么大篇幅就写了怎么赋值,可以用+拼接和能比字典序,我真是服了,连初始化都不写,我是凭借逻辑试了一下直接用String(Array)初始化。然后又是类型错误,这种方式只支持Array<Rune>类型.
总之,这道题就是各种乱七八糟的格式转换。总结如下:
- 先拿到一个可修改的数组, arr = Array(s),类型为Array<UInt8>
- 拿到字符’0’的Unicode值:构建字符串 zero=“0”,那么得到其Unicode值为 zero[0]
- 拿到字符的数字值:arr[i] - zero[0]
- 做处理
- 拿到一个 Array<Rune>类型的数组 res
- 把 arr里面的东西腾到 res里面
- String(res)即可
相关文章:
仓颉刷题录-字符串数字转换(一)
文章目录 背景题目:交换后字典序最小的字符串个人感受 这是双子专栏: Cangjie仓颉程序设计-个人总结 本专栏还在持续更新: 仓颉编程cangjie刷题录 背景 报名了一个仓颉的比赛,感觉条件要求挺低的,就想上。哈哈哈。但…...
SpringBoot【实用篇】- 配置高级
文章目录 目标:1.ConfigurationProperties2.宽松绑定/松散绑定3. 常用计量单位绑定4.数据校验 目标: ConfigurationProperties宽松绑定/松散绑定常用计量单位绑定数据校验 1.ConfigurationProperties ConfigurationProperties 在学习yml的时候我们了解…...
liunx CentOs7安装MQTT服务器(mosquitto)
查找 mosquitto 软件包 yum list all | grep mosquitto出现以上两个即可进行安装,如果没有出现则需要安装EPEL软件库。 yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm查看 mosquitto 信息 yum info mosquitto安装 mosquitt…...
【银河麒麟高级服务器操作系统】虚拟机lvm分区丢失现象分析及解决建议
了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://documentkylinos.cn 环境描述 系统环境 物理机/虚拟机/云/容器 虚拟…...
Android 原子性类型都有哪些
1. 基本类型原子类 AtomicInteger:用于对整数进行原子操作,如incrementAndGet()方法可以原子地将当前值加1并返回新值,getAndSet()方法可以原子地设置新值并返回旧值。AtomicLong:和AtomicInteger类似,用于长整型的原…...
MySQL(上)
一、SQL优化 1、如何定位及优化SQL语句的性能问题?创建的索引有没有被使用到?或者说怎么才可以知道这条语句运行很慢的原因? 对于性能比较低的sql语句定位,最重要的也是最有效的方法其实还是看sql的执行计划,而对于mysql来说&a…...
ffplay 实现视频流中音频的延迟
ffplay -rtsp_transport tcp -i rtsp://admin:1234qwer192.168.1.64:554/Streaming/Channels/101 -vn -af "adelay5000|5000"在这个命令中: -vn 参数表示只播放音频。 -af "adelay5000|5000" 参数表示将音频延迟5000毫秒(即5秒&…...
CSDN资源变现
根据搜索结果,CSDN资源变现主要有以下几种方式: 1、上传付费资源: 用户可以在CSDN上上传资源并设置付费,其他用户支付费用下载这些资源,上传者则获得一部分收益。这种方式适合上传大量资源,通过量变达到质变…...
Rembg模型构建教程
一、介绍 Rembg,全称为“Remove Background”,是一款基于深度学习的图像背景去除工具。它的主要功能是通过智能识别图像中的前景物体,并将其从背景中分离出来,从而创建具有透明背景的图像。 二、基础环境 系统:Ubun…...
向量的基础知识和矩阵向量的坐标旋转
向量的基础: 定义: 既有大小,又有方向的量叫做向量(Vector)。 在几何上,向量用有向线段来表示,有向线段长度表示向量的大小,有向线段的方向表示向量的方向。其实有向线段本身也是向…...
GeoSever发布图层(保姆姬)
发布服务的具体步骤。 1. 安装 GeoServer 下载 GeoServer 安装包:GeoServer 官网按照安装说明进行安装,可以选择 Windows、Linux 或其他平台。 2. 启动 GeoServer 启动 GeoServer 通常通过访问 http://localhost:8080/geoserver 进行。默认用户名和密…...
AI 大模型的发展趋势是怎样的?
AI 大模型的发展趋势呈现出多方面的特点,包括技术、应用、商业模式等多个维度,具体如下: 技术层面: 多模态融合:未来,AI 大模型将不断加强对多模态数据的处理能力,融合文本、图像、音频、视频等…...
win10怎么关掉自动更新-小白必看
1.搜索栏搜索服务单机点开 2.在服务里面找到windows Update服务双击进去 3.如下图把他禁用然后点应用即可...
大学城水电资源管理:Spring Boot解决方案
1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理大学城水电管理系统的相关信息成为必然。开…...
躺平成长-运营日记-第三天
开源竞争: (自己没有办法完全掌握技术的时候就开源掉,培养出更多的技术依赖,让更多的人完善你的技术,那么这不就是在砸罐子吗?一个行业里面你不去砸罐子,其他人就会砸罐子,你不如先砸…...
智慧税务管理:金融企业报税效率与合规性提升
前言 在数字化浪潮席卷全球的今天,金融行业正面临前所未有的挑战与机遇。如何在复杂的税务环境中保持合规并提高效率,已成为每个金融企业的重中之重。今天小编就为大家介绍一下如何通过借助智能税务平台,实现税务管理的智能化革新࿰…...
linux之网络子系统-用户层接收数据包之同步阻塞方案
一、前言 之前讲述了网络包是如何从网卡送到协议栈的,接下来内核还有一项重要的工作,就是在协议栈接收处理完输入包后要通知到用户进程,如何用户进程接收到并处理这些数据。 进程与内核配合有多种方案,这里我们这分析两种典型的…...
【天线&空中农业】花生霉变检测系统源码&数据集全套:改进yolo11-LVMB
改进yolo11-goldyolo等200全套创新点大全:花生霉变检测系统源码&数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.11.01 注意:由于项目一直在更新迭代,上面“1.图片效果展示”和“2.视频效果展示”展示的系统图片或者视…...
全志A133 android10 LVDS幅值调节
一,问题现象 系统使用LVDS接口屏幕,进入系统有些界面会闪,图像抖动; 二,解决办法: 1.调试 调节LCD0的LVDS电压幅度,寄存器地址是0x06511220(具体是在User Manual中的LCD LVDS Ana…...
弃用 RestTemplate,来了解一下官方推荐的 WebClient !
在 Spring Framework 5.0 及更高版本中,RestTemplate 已被弃用,取而代之的是较新的 WebClient。这意味着虽然 RestTemplate 仍然可用,但鼓励 Spring 开发人员迁移到新项目的 WebClient。 WebClient 优于 RestTemplate 的原因有几个ÿ…...
【免费下载】 美国各州区域图-shp格式
美国各州区域图-shp格式 【下载地址】美国各州区域图-shp格式 本资源库提供了一份详尽的美国各州区域图数据,以流行的Shapefile(shp格式)进行封装。Shapefile是一种广泛应用于地理信息系统(GIS)的矢量数据格式…...
告别手动计算!用Python+ArcPy脚本批量搞定MODIS ET数据从8天到月均值的完整流程
从8天到月均值:PythonArcPy全自动处理MODIS ET数据的工程实践 当面对跨越多年、覆盖大区域的MOD16A2数据集时,传统的手工操作不仅效率低下,还容易引入人为错误。本文将展示如何用PythonArcPy构建一套完整的自动化流程,实现从原始8…...
从直流平衡到时钟恢复:深入剖析8B10B编码在高速串行链路中的核心作用
1. 8B10B编码:高速串行通信的"交通警察" 第一次接触PCIe调试时,我拿着示波器看到波形图上那些密集的跳变信号完全摸不着头脑。直到前辈指着屏幕说:"看见这些有规律的0/1跳变了吗?这就是8B10B在指挥交通。"这个…...
Linux 进程间通信(IPC)详解:终于搞懂管道、消息队列、共享内存到底在干什么
很多人第一次学 Linux 进程间通信(IPC)时,都会有一种感觉:概念很多 API 很杂 学完还是不知道到底什么时候该用什么最容易出现的问题是:管道和消息队列有什么区别?为什么共享内存最快?信号量到底…...
SmartDock:让Android设备拥有桌面级生产力的智能启动器
SmartDock:让Android设备拥有桌面级生产力的智能启动器 【免费下载链接】smartdock A user-friendly desktop mode launcher that offers a modern and customizable user interface 项目地址: https://gitcode.com/gh_mirrors/smar/smartdock 你是否曾经想过…...
别再乱写RS485协议了!基于STM32F103C8T6,聊聊工业通讯中帧结构的那些坑
工业级RS485通讯协议设计:从基础到实战的避坑指南 在嘈杂的工厂车间里,一排STM32F103C8T6控制器通过RS485总线连接着二十多台设备。突然,3号节点的温度传感器数据开始随机跳变,而工程师小王发现每当隔壁车间的变频器启动时&#x…...
终极ncmdumpGUI指南:3步快速解密网易云音乐NCM文件
终极ncmdumpGUI指南:3步快速解密网易云音乐NCM文件 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI ncmdumpGUI是一款基于C#开发的Windows图形界面工…...
CircuitFusion:多模态AI在集成电路设计中的革命性应用
1. 集成电路设计的多模态革命:CircuitFusion技术解析在AI芯片设计领域,一个令人头疼的现实是:随着芯片复杂度呈指数级增长,传统设计流程已难以应对。以7nm工艺节点为例,单个芯片可能包含数十亿个晶体管,设计…...
Google:让鼠标学会「看见」这件事意味着什么#Magic Pointer
Google DeepMind发布的Magic Pointer(AI Pointer)让鼠标指针获得了视觉理解和语义推理能力。用户只需要指向画面中的某个对象并说出简短指令,AI就能理解意图并执行复杂操作:订餐、查路线、比价。这个看似简单的能力跃迁࿰…...
