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

网站注册系统源码太原怎样优化网站建设

网站注册系统源码,太原怎样优化网站建设,网站建设立项,宁波做网站的大公司排名🚀个人主页:奋斗的小羊 🚀所属专栏:C 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 💥1、字符串💥1.1 字符串相加💥1.2 验证回文字符串💥1.3 反转…
头像
🚀个人主页:奋斗的小羊
🚀所属专栏:C++
很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~

动图描述

目录

  • 💥1、字符串
    • 💥1.1 字符串相加
    • 💥1.2 验证回文字符串
    • 💥1.3 反转字符串
    • 💥1.4 字符串最后一个单词的长度
    • 💥1.5 字符串中的第一个唯一字符
    • 💥1.6 反转字符串中的单词
  • 总结


💥1、字符串

💥1.1 字符串相加

  • Leetcode——字符串相加

请添加图片描述

有时候我们需要非常大的数据相加时,整型的范围不够,就可以将数据转换为字符串的形式运算,再将结果转回为整型。
整型相加时是从后往前加的,这里的字符串相加我们也从后往前加。不断取出两个字符串的末尾字符,转换为整形后相加,再用+=追加到字符串末尾,其中还要考虑进位的情况。
因为string类支持operator[],所以我们可以通过下标的方式遍历字符串。
其中两个字符串的第一位相加也可能有进位,所以循环结束后还需要判断进位是否为1。
因为我们是从后往前加的,所以最后还需要用reverse将字符串翻转过来。

class Solution {
public:string addStrings(string num1, string num2) {string s;int n = 0;int end1 = num1.size() - 1;int end2 = num2.size() - 1;while (end1>=0 || end2>=0){int n1 = end1>=0 ? num1[end1--] - '0' : 0;int n2 = end2>=0 ? num2[end2--] - '0' : 0;int ret = n1 + n2 + n;n = ret / 10;ret %= 10;s += ret + '0';}if (n == 1){s += '1';}reverse(s.begin(), s.end());return s;}
};

用下标的方式从后往前遍历字符串,相加得到的值追加到字符串,最后再反转字符串。


💥1.2 验证回文字符串

  • Leetcode——验证回文串

在这里插入图片描述

将字符串存到一个stack和一个queue中,循环比较top(),当栈和队列为空时则字符串回文,当某次top()不相等时则不回文。
范围for遍历字符串,如果是符合我们要求的字符就插入栈和队列中。

class Solution {
public:bool isPalindrome(string s) {for (auto e : s){if (e >= 'a' && e <= 'z'){_st.push(e);_qu.push(e);}if (e >= 'A' && e <= 'Z'){e += 32;_st.push(e);_qu.push(e);}if (e >= '0' && e <= '9'){_st.push(e);_qu.push(e);}}while (!_st.empty()){if (_st.top() != _qu.front()){return false;}_st.pop();_qu.pop();}return true;}
private:stack<int> _st;queue<int> _qu;
};

💥1.3 反转字符串

  • Leetcode——反转字符串

在这里插入图片描述

只需要反转对应的区间就行,注意不能越界。

class Solution {
public:string reverseStr(string s, int k) {for (size_t i = 0; i < s.size(); i += 2*k){size_t n = i + k > s.size() ? s.size() : i + k;reverse(s.begin() + i, s.begin() + n);}return s;}
};

💥1.4 字符串最后一个单词的长度

  • 牛客——最后一个单词的长度

在这里插入图片描述

#include <iostream>
using namespace std;int main() {string s;getline(cin, s);size_t pos = s.rfind(" ");size_t length = s.size() - pos - 1;cout << length << endl;
}

💥1.5 字符串中的第一个唯一字符

  • Leetcode——字符串中的第一个唯一字符

在这里插入图片描述

这种类似计数的题可以用哈希映射的方法,首先定义一个用于计数的数组,然后将字符串映射到数组中,再通过遍历字符串得到下标间接遍历数组来找出为1的元素,返回下标。
定义数组时需要初始化为全0。

class Solution {
public:int firstUniqChar(string s) {int arr[26] = {0};for (auto e : s){arr[e - 'a']++;}for (size_t i = 0; i < s.size(); i++){if (1 == arr[s[i] - 'a']){return i;}}return -1;}
};

💥1.6 反转字符串中的单词

  • Leetcode——反转字符串中的单词

在这里插入图片描述
reverse(s.begin(), s.end());
参数:双向迭代器,指向要反转的序列的初始和最终位置。使用的范围是[ )左闭右开。
从前往后遍历字符串,找" "空格的位置,用reverse反转单词。需要注意的是reverse的参数是左闭右开的。

class Solution {
public:string reverseWords(string s) {int pos1 = 0;int pos2 = s.find(" ", pos1);while (pos2 < s.size()){reverse(s.begin() + pos1, s.begin() + pos2);pos1 = pos2 + 1;pos2 = s.find(" ", pos1);}reverse(s.begin() + pos1, s.end());return s;}
};

总结

  1. 首先要认真审题,有思路了切不可着急写,先在心中推敲一下看当前思路是否可行,有大概的把握了再着手实现
  2. 不要太钻牛角尖,如果某个思路迟迟实现不了,就把视角放广一点寻找新的思路
http://www.yayakq.cn/news/526242/

相关文章:

  • 中文网站建设代码苏州高端网站制作机构
  • 网站开发列表南京江北新区房价2022最新价格
  • 网站的线下推广怎么做个人做网站能赚到钱吗
  • 廊坊做网站的大公司网络优化怎么弄
  • 网站建站推广口碑营销中容易出现哪些问题
  • lumen 做企业网站北京建设网站的公司兴田德润优惠
  • 网站建设结课黄冈seo推广软件的更新版本
  • 做简易网站校园门户网站开发需求分析
  • 做展示型企业网站网站设计需要什么
  • 文章类型网站企业网站黄页怎么做
  • 网站 建设 领导小组网站里的动画效果图
  • 南京电商网站设计网站设计建设维护与更新
  • 建设网站用动态ip还是静态ip定制家具生产厂家
  • 做承兑 汇票一般会用哪些网站深圳广告策划公司
  • 网站建设课程培训网站demo制作工具
  • 网站维护主要做什么抖音代运营合同范标准版
  • 广州外贸营销型网站建设公司o2o营销模式
  • 做阿里巴巴企业网站长垣有做网站设计的吗
  • 行业网站有哪些平台福州营销网站建设模板
  • 哪些网站做机票酒店有优势江苏建工集团的现状
  • 大型网站开发用的技术制作人物的软件
  • 网站建设公司企业模板中企动力企业邮箱app
  • 宁波网站制作首推蓉胜网络好城乡建设网站证件查询
  • 做调查问卷的网站有什么建站基础:wordpress安装教程图解 - 天缘博客
  • o2o网站 方案自己做网站卖什么好
  • onethink做移动网站企业网站的建设思维导图
  • 怎么申请自己的网络平台网站排名优化工具
  • 域名过期做的网站怎么办手机搭建免费网站
  • 湖南智能网站建设哪里好网站开发前端与后端
  • php禁止ip访问网站银川网站建设价格