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

8.1 字符串中等 43 Multiply Strings 38 Count and Say

43 Multiply Strings【默写】

在这里插入图片描述
那个难点我就没想先解决,原本想法是先想其他思路,但也没想出。本来只想chat一下使用longlong数据类型直接stoi()得不得行,然后就看到了答案,直接一个默写的大动作。但这道题确实考察的是还原乘法,整体数字相乘这条路大概是行不通的,只能按照列竖式的乘法拆分思路(官方题解的法一我没看)

class Solution {
public:string multiply(string num1, string num2) {//逐位做乘法//难点:实现从后到前的存储--->位置i+j i+j+1使用数组int m = num1.size() , n = num2.size();vector<int> pos(m+n,0);for(int i = m-1 ; i >= 0 ; --i){for(int j = n-1 ; j >= 0 ;--j){int mul = (num1[i] - '0')*(num2[j] - '0');int p1 = i+j , p2 = i+j+1;//进位 当前位int sum = mul + pos[p2];pos[p2] = sum %10;pos[p1] += sum /10;}}string res = "";for(int n : pos){if(res.empty() && n == 0)continue;res += (n + '0');}return res.empty()?"0":res;}
};

38 Count and Say

在这里插入图片描述
难点在于读懂cAs(n)这个函数是在对cAs(n-1)做run length encoding,初始值是“1”:
在这里插入图片描述

class Solution {
public:string countAndSay(int n) {//公式题//个数+主体 -->个数个主体//递归 比较合适if(n == 1){return "1";}string last = countAndSay(n-1);string res = "";//个数 int count = 0;//数字for(int i = 0 ; i < last.size() ; i++){char ch = last[i];count++;if(i == last.size()-1 || last[i+1] != ch ){res += (count + '0');res += ch;count = 0;}}return res;}
};
http://www.lryc.cn/news/411924.html

相关文章:

  • upload-labs靶场:1—10通关教程
  • Hive3:一键启动、停止、查看Hive的metastore和hiveserver2两个服务的脚本(好用)
  • 遗传算法与深度学习实战——生命模拟及其应用
  • 大数据|使用Apache Spark 删除指定表中的指定分区数据
  • OSPF动态路由协议实验
  • tcp中accept()的理解
  • 让我们逐行重现 GPT-2:第 1 部分
  • 第十九天内容
  • Hive之扩展函数(UDF)
  • jdk1.8中HashMap为什么不直接用红黑树
  • 消息推送只会用websocket、轮询?试试SSE,轻松高效。
  • Spring-Retry 框架实战经典重试场景
  • 人工智能在医疗领域的应用与挑战
  • Windows下nmap命令及Zenmap工具的使用方法
  • 深入了解-什么是CUDA编程模型
  • 111111111111111111
  • 环境如何搭建部署Nacos
  • 什么是 5G?
  • 优化冗余代码:提升前端项目开发效率的实用方法
  • SpringCloud Alibaba 微服务(四):Sentinel
  • Python 3.12新功能(1)
  • c++STL容器中vector的使用,模拟实现及迭代器使用注意事项和迭代器失效问题
  • Android笔试面试题AI答之Activity常见考点
  • RK3568笔记四十九:W25Q64驱动开发(硬件SPI1)
  • TypeScript 定义不同的类型(详细示例)
  • [工具推荐]前端加解密之Burp插件Galaxy
  • 课题项目结题测试的作用
  • 中国工商银行长春分行开展“工驿幸福 健康财富”长辈客群康养活动
  • 机器学习 第十四章
  • 未来RPA财税的发展前景