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

石家庄市住房和城乡建设局官方网站简述网站推广的意义和方法

石家庄市住房和城乡建设局官方网站,简述网站推广的意义和方法,武隆专业网站建设公司,dede网站入侵教程⭐作者:别动我的饭 ⭐专栏:菜鸟刷题 ⭐标语:悟已往之不谏,知来者之可追 一.字符串压缩:面试题 01.06. 字符串压缩 - 力扣(LeetCode) 描述 字符串压缩。利用字符重复出现的次数,编…

⭐作者:别动我的饭
⭐专栏:菜鸟刷题
⭐标语:悟已往之不谏,知来者之可追
在这里插入图片描述

一.字符串压缩:面试题 01.06. 字符串压缩 - 力扣(LeetCode)

描述

字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。


解题思路

遍历字符串,统计字符的个数就行,但是将数字转成字符串会有些麻烦,其实给每一位数字加上’\0’就可以得到相应的数字字符。可以考虑这个办法。

int itoa(char*str,int num)
{//简单的一个数字转字符串函数,将转换后的数字字符串放到str空间中char tmp[16]={0};int count=0;while(num){tmp[count++]=(num%10)+'0';//将个位数字转换为对应数字字符放到tmp空间中(逆序的)num/=10;}for(int i=0;i<count;i++){str[i]=tmp[count-i-1];//逆序将数字字符放入传入的str空间中}
return count;//返回转换的数字字符串长度
}
char*compressString(char*S)
{int len=strlen(S);//申请新的空间,注意空间有可能所需会变大,比如abc->a1b1c1char*newstr=(char*)calloc(len,3);int pos=0;char*s=S;while(*s!='\0'){char*n=s+1;while(*n!='\0'&&*n==*s)n++;//走到下一个不同字符处停下int l=n-s;//相同字符的长度newstr[pos++]=*s;//先赋值对应字符pos+=itoa(newstr+pos,l);//编写了一个数字转字符函数,将数字放到字符串空间指定位置s=n;//下一个不同的字符处}return strlen(newstr)>=len?S:newstr;
}

但是作为一个手搓过string的博主,这种题目不来占个string的便宜说的过去吗?

首先介绍一个库函数:to_string这是一个将数字转为数字字符的库函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NR29I3cA-1679378671546)(C:\Users\羽北冥\AppData\Roaming\Typora\typora-user-images\image-20230321132933270.png)]

在统计字符的时候,如果下一个字符和当前字符不一致或者说已经到结尾了的时候,该字符也就结束了。

class Solution {
public:string compressString(string S) {string ans="";int cnt=0;int len=S.size();//string有效字符用sizefor(int i=0;i<len;i++){cnt++;if(i==len-1||S[i]!=S[i+1])//到结尾或者下一个字符和该字符不相同就结束了{ans+=S[i]+to_string(cnt);cnt=0;//从头开始计数}}return ans.size()<len?ans:S;}
};

二.配对交换:面试题 05.07. 配对交换 - 力扣(LeetCode)

描述

配对交换。编写程序,交换某个整数的奇数位和偶数位,尽量使用较少的指令(也就是说,位0与位1交换,位2与位3交换,以此类推)


解题思路

这没什么骚操作,就当老实人呗。通过按位与分别拿到一个数的奇数位和偶数位,再将奇数位左移一位+偶数位右移一位,就可以达到最后的结果。

int exchangeBits(int num){int odd=0b10101010101010101010101010101010;//二进制int jdd=0b01010101010101010101010101010101;odd&=num;jdd&=num;int ret=(odd>>1)+(jdd<<1);return ret;}

三.递归乘法:面试题 08.05. 递归乘法 - 力扣(LeetCode)

描述

递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。


解题思路

a*b也就是a个b相加的结果,所以只要递归调用加法就行了。如果有一个数为0,那就直接返回0,有1就直接返回那个数本身。没有这些特殊数,那就只好递归调用咯。递归要有限制条件,这题的限制条件是,我们只需要调用a/b次递归。

int multiply(int A, int B){if(B==0)return 0;if(B==1)return A;return A+multiply(A,B-1);}

四.挑7:挑7_牛客题霸_牛客网 (nowcoder.com)

描述

输出 1到n之间 的与 7 有关数字的个数。

一个数与7有关是指这个数是 7 的倍数,或者是包含 7 的数字(如 17 ,27 ,37 … 70 ,71 ,72 ,73…)


解题思路

这个题目要注意的地方在于,存在那种既是七的倍数又包含七的数字,所以判断的时候用||对这两个条件一起判断会比较好,否则还要做额外处理。将这个数与七取模结果为零就表明这个数是七的倍数,至于包含七就只需要不断除十模十即可。

#include <stdio.h>int main() 
{int n=0;int count=0;while(scanf("%d",&n)!=EOF){for(int i=7;i<=n;i++)//直接从7开始,因为之前不可能有包含7或者7的倍数{int tmp=i;while(tmp>0){if(tmp%10==7)break;tmp/=10;}if(i%7==0||tmp%10==7){count++;}}printf("%d",count);}return 0;
}

人们总是高估短期努力带来的提升,而小看长期坚持带来的提升。今天是刷题第三天了,你还在坚持吗?

http://www.tj-hxxt.cn/news/99106.html

相关文章:

  • 研究生院 网站 建设如何做网站建设
  • 山东旗舰建设集团网站网站制作哪家公司好
  • 手机网站建网百度网盘资源免费搜索引擎入口
  • 电子产品网站开发背景外包网络推广公司怎么选
  • 个人旅游网站模板东莞做网络推广的公司
  • 做网站会出现什么问题windows优化大师会员
  • 网站建设招商万网app下载
  • 学编程用什么笔记本电脑好泰安优化关键词排名哪家合适
  • 网站建设免关键词优化seo优化
  • 百度有没有做游戏下载网站购买域名的网站
  • 温州网站制作优化1688自然排名怎么做好
  • 关键词 优化 网站2021年度关键词有哪些
  • 旅游网站制作的毕业论文任务外链发布平台
  • 辽宁网站建设价位关键词优化武汉
  • 挖矿网站怎么做外链平台有哪些
  • 站酷设计网站官网网址如何做好网络营销工作
  • 南通营销型网站建设下载百度搜索
  • wordpress博客手机发布seo收索引擎优化
  • 哪个网站专门做母婴seo分析案例
  • wordpress文章自动发布安阳企业网站优化外包
  • 网站制作公司汉狮网络百度收录快的发帖平台
  • wordpress博客付费北京网优化seo优化公司
  • 建设银行官方网站登班级优化大师头像
  • 做类似简书的网站石家庄网站优化
  • php源码网站修改西安seo外包公司
  • 哈尔滨今天新闻头条关键词排名优化
  • 如何才能让自己做的网站百度能搜怎么样在百度上免费推广
  • 优化建立生育支持政策体系上海seo优化公司
  • 邵阳企业网站建设百度官网首页登录
  • 专业网站建设在线测试百度游戏排行榜