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

仓颉刷题录-字符串数字转换(一)

文章目录

    • 背景
    • 题目:交换后字典序最小的字符串
      • 个人感受

这是双子专栏: 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)即可

相关文章:

仓颉刷题录-字符串数字转换(一)

文章目录 背景题目&#xff1a;交换后字典序最小的字符串个人感受 这是双子专栏&#xff1a; Cangjie仓颉程序设计-个人总结 本专栏还在持续更新&#xff1a; 仓颉编程cangjie刷题录 背景 报名了一个仓颉的比赛&#xff0c;感觉条件要求挺低的&#xff0c;就想上。哈哈哈。但…...

SpringBoot【实用篇】- 配置高级

文章目录 目标&#xff1a;1.ConfigurationProperties2.宽松绑定/松散绑定3. 常用计量单位绑定4.数据校验 目标&#xff1a; ConfigurationProperties宽松绑定/松散绑定常用计量单位绑定数据校验 1.ConfigurationProperties ConfigurationProperties 在学习yml的时候我们了解…...

liunx CentOs7安装MQTT服务器(mosquitto)

查找 mosquitto 软件包 yum list all | grep mosquitto出现以上两个即可进行安装&#xff0c;如果没有出现则需要安装EPEL软件库。 yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm查看 mosquitto 信息 yum info mosquitto安装 mosquitt…...

【银河麒麟高级服务器操作系统】虚拟机lvm分区丢失现象分析及解决建议

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://documentkylinos.cn 环境描述 系统环境 物理机/虚拟机/云/容器 虚拟…...

Android 原子性类型都有哪些

1. 基本类型原子类 AtomicInteger&#xff1a;用于对整数进行原子操作&#xff0c;如incrementAndGet()方法可以原子地将当前值加1并返回新值&#xff0c;getAndSet()方法可以原子地设置新值并返回旧值。AtomicLong&#xff1a;和AtomicInteger类似&#xff0c;用于长整型的原…...

MySQL(上)

一、SQL优化 1、如何定位及优化SQL语句的性能问题&#xff1f;创建的索引有没有被使用到?或者说怎么才可以知道这条语句运行很慢的原因&#xff1f; 对于性能比较低的sql语句定位&#xff0c;最重要的也是最有效的方法其实还是看sql的执行计划&#xff0c;而对于mysql来说&a…...

ffplay 实现视频流中音频的延迟

ffplay -rtsp_transport tcp -i rtsp://admin:1234qwer192.168.1.64:554/Streaming/Channels/101 -vn -af "adelay5000|5000"在这个命令中&#xff1a; -vn 参数表示只播放音频。 -af "adelay5000|5000" 参数表示将音频延迟5000毫秒&#xff08;即5秒&…...

CSDN资源变现

根据搜索结果&#xff0c;CSDN资源变现主要有以下几种方式&#xff1a; 1、上传付费资源&#xff1a; 用户可以在CSDN上上传资源并设置付费&#xff0c;其他用户支付费用下载这些资源&#xff0c;上传者则获得一部分收益。这种方式适合上传大量资源&#xff0c;通过量变达到质变…...

Rembg模型构建教程

一、介绍 Rembg&#xff0c;全称为“Remove Background”&#xff0c;是一款基于深度学习的图像背景去除工具。它的主要功能是通过智能识别图像中的前景物体&#xff0c;并将其从背景中分离出来&#xff0c;从而创建具有透明背景的图像。 二、基础环境 系统&#xff1a;Ubun…...

向量的基础知识和矩阵向量的坐标旋转

向量的基础&#xff1a; 定义&#xff1a; 既有大小&#xff0c;又有方向的量叫做向量&#xff08;Vector&#xff09;。 在几何上&#xff0c;向量用有向线段来表示&#xff0c;有向线段长度表示向量的大小&#xff0c;有向线段的方向表示向量的方向。其实有向线段本身也是向…...

GeoSever发布图层(保姆姬)

发布服务的具体步骤。 1. 安装 GeoServer 下载 GeoServer 安装包&#xff1a;GeoServer 官网按照安装说明进行安装&#xff0c;可以选择 Windows、Linux 或其他平台。 2. 启动 GeoServer 启动 GeoServer 通常通过访问 http://localhost:8080/geoserver 进行。默认用户名和密…...

AI 大模型的发展趋势是怎样的?

AI 大模型的发展趋势呈现出多方面的特点&#xff0c;包括技术、应用、商业模式等多个维度&#xff0c;具体如下&#xff1a; 技术层面&#xff1a; 多模态融合&#xff1a;未来&#xff0c;AI 大模型将不断加强对多模态数据的处理能力&#xff0c;融合文本、图像、音频、视频等…...

win10怎么关掉自动更新-小白必看

1.搜索栏搜索服务单机点开 2.在服务里面找到windows Update服务双击进去 3.如下图把他禁用然后点应用即可...

大学城水电资源管理:Spring Boot解决方案

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理大学城水电管理系统的相关信息成为必然。开…...

躺平成长-运营日记-第三天

开源竞争&#xff1a; &#xff08;自己没有办法完全掌握技术的时候就开源掉&#xff0c;培养出更多的技术依赖&#xff0c;让更多的人完善你的技术&#xff0c;那么这不就是在砸罐子吗&#xff1f;一个行业里面你不去砸罐子&#xff0c;其他人就会砸罐子&#xff0c;你不如先砸…...

智慧税务管理:金融企业报税效率与合规性提升

前言 在数字化浪潮席卷全球的今天&#xff0c;金融行业正面临前所未有的挑战与机遇。如何在复杂的税务环境中保持合规并提高效率&#xff0c;已成为每个金融企业的重中之重。今天小编就为大家介绍一下如何通过借助智能税务平台&#xff0c;实现税务管理的智能化革新&#xff0…...

linux之网络子系统-用户层接收数据包之同步阻塞方案

一、前言 之前讲述了网络包是如何从网卡送到协议栈的&#xff0c;接下来内核还有一项重要的工作&#xff0c;就是在协议栈接收处理完输入包后要通知到用户进程&#xff0c;如何用户进程接收到并处理这些数据。 进程与内核配合有多种方案&#xff0c;这里我们这分析两种典型的…...

【天线&空中农业】花生霉变检测系统源码&数据集全套:改进yolo11-LVMB

改进yolo11-goldyolo等200全套创新点大全&#xff1a;花生霉变检测系统源码&#xff06;数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.11.01 注意&#xff1a;由于项目一直在更新迭代&#xff0c;上面“1.图片效果展示”和“2.视频效果展示”展示的系统图片或者视…...

全志A133 android10 LVDS幅值调节

一&#xff0c;问题现象 系统使用LVDS接口屏幕&#xff0c;进入系统有些界面会闪&#xff0c;图像抖动&#xff1b; 二&#xff0c;解决办法&#xff1a; 1.调试 调节LCD0的LVDS电压幅度&#xff0c;寄存器地址是0x06511220&#xff08;具体是在User Manual中的LCD LVDS Ana…...

弃用 RestTemplate,来了解一下官方推荐的 WebClient !

在 Spring Framework 5.0 及更高版本中&#xff0c;RestTemplate 已被弃用&#xff0c;取而代之的是较新的 WebClient。这意味着虽然 RestTemplate 仍然可用&#xff0c;但鼓励 Spring 开发人员迁移到新项目的 WebClient。 WebClient 优于 RestTemplate 的原因有几个&#xff…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者&#xff1a;来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布&#xff0c;Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明&#xff0c;Elastic 作为 …...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...

yaml读取写入常见错误 (‘cannot represent an object‘, 117)

错误一&#xff1a;yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因&#xff0c;后面把yaml.safe_dump直接替换成yaml.dump&#xff0c;确实能保存&#xff0c;但出现乱码&#xff1a; 放弃yaml.dump&#xff0c;又切…...

基于单片机的宠物屋智能系统设计与实现(论文+源码)

本设计基于单片机的宠物屋智能系统核心是实现对宠物生活环境及状态的智能管理。系统以单片机为中枢&#xff0c;连接红外测温传感器&#xff0c;可实时精准捕捉宠物体温变化&#xff0c;以便及时发现健康异常&#xff1b;水位检测传感器时刻监测饮用水余量&#xff0c;防止宠物…...

[特殊字符] 手撸 Redis 互斥锁那些坑

&#x1f4d6; 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作&#xff0c;想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁&#xff0c;也顺便跟 Redisson 的 RLock 机制对比了下&#xff0c;记录一波&#xff0c;别踩我踩过…...