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

卡码网笔试 | 118 小y删数字、119 小红的字符串切割、120 小红的数字匹配

118 小y删数字

逐个数字循环除10,并且用一个变量记录非0位数,最后加起来即可。

代码如下:

#include <iostream>using namespace std;int main() {int n;cin >> n;int a[n];int sum = 0;for (int i = 0; i < n; i++) cin >> a[i];for (int i = 0; i < n; i++) {while (a[i]) {if (a[i] % 10 > 0) sum++;a[i] /= 10;}}cout << sum << endl;
}

119 小红的字符串切割

双指针。

用一个end变量记录相同字符串最后一个字符的下标,每次i和i + 1比较得到两者是否相等的情况来维护end变量的值。每次end更新的,start 赋为 end + 1。当确定end是相同字符串最后一个字符的下标或者是整个字符串最后一个字符的下标时,我们用end - start + 1得到相同字符串的长度。

之后根据字符串长度进行处理,如果是奇数且>=3,直接放入记录结果的向量中。如果是偶数,大于4的可以拆分前面三个字符为一个字符串,放入向量,后面也直接放入即可。其他情况直接输出-1并进入到下一轮循环中去即可。

代码如下:

#include <iostream>
#include <string>
#include <vector>
using namespace std;int main() {int n;cin >> n;if (n < 3) {cout << -1 << endl;return 0;}string s;cin >> s;vector<string> vec;int start = 0, end = 0;for (int i = 0; i < n; i++) {if (i + 1 < n && s[i + 1] == s[i]) {end++;} else {if (end - start +1 < 3) {cout << -1 << endl;return 0;} else {if ((end - start + 1) % 2 == 1) {string ss = s.substr(start, end - start + 1);vec.push_back(ss);} else if ((end - start + 1) == 4) {cout << -1 << endl;return 0;} else {string ss = s.substr(start, 3);vec.push_back(ss);ss = s.substr(start + 3, end - start - 2);vec.push_back(ss);}start = end + 1;end++;}}}for (int i = 0; i < vec.size(); i++) {cout << vec[i] << ' ';}
}

120 小红的数字匹配

这题主要分成这么三个步骤:

1、统计问号字符个数;

2、将k转化为对应大小的字符

3、将转化后的字符填入到原来问号字符中去

由于java中nextInt()后会有换行符或者空格残留,因此在读取字符串之前还要再用一个nextLint()缓冲下。在用字符串之前,我们可以用toCharArray()把它转化为一个字符数组,最后再用String的构造函数把它转化为字符串返回。

大致代码如下:

import java.util.*;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int t = in.nextInt();while (t-- > 0) {in.nextLine();String s = in.nextLine();int k = in.nextInt();if (s.charAt(0) == '0' && s.length() > 1) {System.out.println(-1);continue;}char[] c = s.toCharArray();int num = 0;for (int i = 0; i < c.length; i++) {if (c[i] == '?') num++;}if (num == 0 && k > 0) {System.out.println(-1);continue;}int flag = 1;k--;for (int i = 0; i < c.length; i++) {if (c[i] == '?') {num--;int x = k / (int)Math.pow(10, num);if (i == 0 && x > 8) {flag = 0; break;} else if (x > 9) {flag = 0; break;} else {if (i == 0) c[i] = (char)(x + 1 + '0');// else if (num == 0) c[i] = x == 0 ? '0' : (char)(x - 1 + '0');else c[i] = (char)(x + '0');k %= Math.pow(10, num);}}}if (flag == 0) System.out.println(-1);else System.out.println(new String(c));}}
}

相关文章:

  • 如何用ai打一场酣畅淋漓的数学建模比赛? 给考研加加分!
  • Crontab 自动脚本实例 | 校园网保持联网
  • 宝石收集,tarjan
  • 佩戴安全头盔监测识别摄像机
  • 15 VUE学习:插槽slot
  • leetcode刷题
  • 数据库连接项目
  • 池的概念以及数据库连接池 Druid
  • 深入理解 Mysql 分层架构:从存储引擎到查询优化器的内部机制解析
  • 1738. 找出第 K 大的异或坐标值
  • 嵌入式进阶——舵机控制PWM
  • 辐射度技术在AI去衣中的魅力与科学
  • 基于长短期记忆网络 LSTM 的送餐时间预测
  • 1960-2022年世界银行WDI面板数据(1400+指标)
  • 论文阅读--ActionCLIP
  • css的样式优先级
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • gops —— Go 程序诊断分析工具
  • Java多线程(4):使用线程池执行定时任务
  • Java反射-动态类加载和重新加载
  • node和express搭建代理服务器(源码)
  • Vue 重置组件到初始状态
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 三栏布局总结
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 新手搭建网站的主要流程
  • 用mpvue开发微信小程序
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #单片机(TB6600驱动42步进电机)
  • (1)(1.9) MSP (version 4.2)
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (分布式缓存)Redis哨兵
  • (理论篇)httpmoudle和httphandler一览
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)创业的注意事项
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .gitignore文件_Git:.gitignore
  • .htaccess配置常用技巧
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .Net IOC框架入门之一 Unity
  • .Net mvc总结
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 反射的使用
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • ??在JSP中,java和JavaScript如何交互?
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [\u4e00-\u9fa5] //匹配中文字符