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

制作网页网站的软件重庆住房和城乡建设厅网站

制作网页网站的软件,重庆住房和城乡建设厅网站,网站开发维护费用,网站更改域名没有变更备案👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

在这里插入图片描述

👦个人主页:@Weraphael
✍🏻作者简介:目前学习C++和算法
✈️专栏:C++航路
🐋 希望大家多多支持,咱一起进步!😁
如果文章对你有帮助的话
欢迎 评论💬 点赞👍🏻 收藏 📂 加关注✨


目录

  • 一、把字符串转化为整数
  • 二、字符串相加
  • 三、反转字符串
  • 四、字符串中的第一个唯一字符
  • 五、字符串最后一个单词的长度
  • 六、验证回文串
  • 七、反转字符串 II
  • 八、 反转字符串中的单词 III
  • 九、高精度乘以高精度

一、把字符串转化为整数

题目链接:点击跳转

在这里插入图片描述

class Solution {
public:int StrToInt(string str) {// 特判集合可能为空集的情况if (str.empty()) return 0;int flag = 1; // 用来判断这个数是正数还是负数int i = 0; // 遍历字符串if (str[i] == '-'){flag = -1;i++;}else if (str[i] == '+'){i++;}int ans = 0; // 存储数字for (; i < str.size(); i++){if (str[i] < '0' || str[i] > '9'){return 0;}ans = ans * 10 + (str[i] - '0');}return ans * flag;}
};

二、字符串相加

题目链接:点击跳转

在这里插入图片描述

class Solution {
public:// 解决思路:模拟string addStrings(string num1, string num2) {//  将字符串翻转(原因:进位头插很头疼)reverse(num1.begin(), num1.end());reverse(num2.begin(), num2.end());string ans; // 答案int t = 0; // 进位for (int i = 0; i < num1.size() || i < num2.size() || t; i++){if (i < num1.size()) t +=  num1[i] - '0';if (i < num2.size()) t +=  num2[i] - '0';ans.push_back(t % 10 + '0');t /= 10;}// 最后将答案翻转reverse(ans.begin(), ans.end());return ans;}
};

三、反转字符串

题目链接:点击跳转

在这里插入图片描述

class Solution {
public:// 解决思路:双指针算法void reverseString(vector<char>& s) {vector<char>::iterator left = s.begin();vector<char>::iterator right = s.end() - 1;while (left < right){char t = *left;*left = *right;*right = t;left++;right--;}for (auto& e : s){cout << e;}}
};

四、字符串中的第一个唯一字符

题目链接:点击跳转

  • 解题思路1:哈希表
class Solution {
public:int firstUniqChar(string s) {unordered_map<char, int> heap;for (int i = 0; i < s.size(); i++){heap[s[i]]++;}for (int i = 0; i < s.size(); i++){if (heap[s[i]] == 1){return i;}}return -1;}
};
  • 解题思路2:用数组模拟哈希表
class Solution {
public:int firstUniqChar(string s) {int heap[26] = {0};for (int i = 0; i < s.size(); i++){heap[s[i] - 'a']++;}for (int i = 0; i < s.size(); i++){if (heap[s[i] - 'a'] == 1){return i;}}return -1;}
};

五、字符串最后一个单词的长度

题目链接:点击跳转

在这里插入图片描述

  • 解题思路1:从最后一个字符开始遍历,直到遇到空格停止
#include <iostream>
#include <string>
using namespace std;int main()
{string s;getline(cin, s);int ans = 0;for (int i = s.size() - 1; i >= 0; i--){if (s[i] != ' ') ++ans;else break;}cout << ans << endl;return 0;
}
  • 解题思路2:巧用函数(不推荐,因为函数根本记不住hh)
#include <iostream>
using namespace std;int main()
{string s;getline(cin, s);// rfind:从后往前查找目标int space_of_lastpos = s.rfind(' ');int last_pos = s.size() - 1;int res = last_pos -  space_of_lastpos;cout << res << endl;return 0;
}

六、验证回文串

题目链接:点击跳转

在这里插入图片描述

class Solution {
public:bool isPalindrome(string s) {// 将大写字符转换为小写字符string str;for (auto& e : s){if (e >= 'A' && e <= 'Z'){str += tolower(e);}// 移除所有非字母数字字符之后// 意思是保留字母 + 数字else if ((e >= 'a' && e <= 'z') || (e >= '0' && e <= '9')){str += e;}}// 判断回文串if (str.empty()) return true; // 特殊情况string str2(str);reverse(str2.begin(), str2.end());if (str == str2) return true;else return false;}
};

七、反转字符串 II

题目链接:点击跳转

在这里插入图片描述

class Solution {
public:// 思路:将题目描述转化为代码即可string reverseStr(string s, int k) {// 间隔2kfor (int i = 0; i < s.size(); i += (2 * k)) {// 1. 每隔 2k 个字符的前 k 个字符进行反转// 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符if (s.size() - i >= k){reverse(s.begin() + i, s.begin() + i + k );continue;}// 3. 剩余字符少于 k 个,则将剩余字符全部反转。else{reverse(s.begin() + i, s.begin() + s.size());}}return s;}};

八、 反转字符串中的单词 III

题目链接:点击跳转

在这里插入图片描述

class Solution {
public:// 解题思路:双指针算法string reverseWords(string s) {for (int i = 0; i < s.size(); i++){int j = i;while (j < s.size() && s[j] != ' ') j++;if (s[j] == '\0'){reverse(s.begin() + i, s.begin() + s.size());break;}reverse(s.begin() + i, s.begin() + j);i = j;}return s;}
};

九、高精度乘以高精度

题目链接:点击跳转

在这里插入图片描述

class Solution {
public:string multiply(string num1, string num2) {vector<int> A,B;//  到存int n = num1.size(), m = num2.size();for (int i = n - 1;i >= 0; i--)A.push_back(num1[i] - '0');for (int i = m - 1;i >= 0;i--)B.push_back(num2[i] - '0');vector<int> c(n + m);for(int i = 0;i < A.size();i++){for(int j = 0;j < B.size();j++){c[i + j] += A[i] * B[j];// 处理进位if (c[i + j] >= 10){c[i + j + 1] += c[i + j] / 10;}c[i + j] %= 10;}}while(c.size() > 1 && c.back() == 0)c.pop_back();reverse(c.begin(), c.end());string ans;for (size_t i = 0; i < c.size(); i++){ans += c[i] + '0';}return ans;}
};
http://www.yayakq.cn/news/670513/

相关文章:

  • 网站建设汇报 安全保障做一个平面网站的成本
  • 欣宝儿在什么网站做直播wordpress数据库配置文件路径
  • 别人盗用我的网站备案号怎么办网站编辑的工作内容
  • 网站制作工作室专业公司一家专门做灯的网站
  • 中国公司网站建设方案多页网站模板
  • 建立网站需要多少钱多少钱28湖南岚鸿给网站加个地图的代码
  • 提取网站子页面邮箱公司的网站是什么
  • 网站建设前台后台教程百度指数分析数据
  • 上海网站架设淄博安监局网站两体系建设
  • 焦作网站建设哪家专业网站域名费用交给谁
  • 网站建设买服务器价格免费建网
  • 网站改版的好处商品推广文案
  • 免费建设网站入驻深圳媒体网络推广有哪些
  • 好乐买的网站推广方式专业购物网站
  • 做的视频传到哪个网站好新昌网站开发
  • 公司网站设计与实现的项目建议书网络推广公司 深圳
  • 网站建设捌金手指花总二七报个电脑培训班多少钱
  • 怎么建立免费的网站程序员用的编程软件
  • 成都网站建设公司高新百度直播推广
  • 网站建设 洪广州市网站建设价格
  • asp 网站管理系统如何制作一个论坛网站
  • 网站建设基本流程图noren wordpress
  • 招商网站建设多少钱网站集约化建设 统一出口
  • 电子商务网站名称中型网站 收益
  • 虚拟主机空间发布网站域名注册后怎么建设网站
  • 营销型网站知识营销方法有哪几种
  • 南山做网站教程大连建设工程造价信息网
  • 电子商务网站系统规划 案例分析免费百度广告怎么投放
  • 物流查询网站开发网站的设计步骤
  • 环保行业网站开发建网站图片怎么找