ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

给你一个字符串s,你需要做的是统计s中子串“CHN”的个数 and 谈谈作者这些天时常冒出的些许做题灵感 C语言从入门到入土(进阶篇)(算法篇p9)

2021-12-19 12:02:40  阅读:152  来源: 互联网

标签:ch 递归 个数 long C语言 进阶篇 chn CHN 思路


 谁都不能阻挡你成为更优秀的人。  

牛客网题目链接点我(作者的感悟在题目下面哈)

#include<stdio.h>
int main()
{
	char s[8000] = { 0 };
	char* p = s;
	long long c = 0;
	long long ch = 0;
	long long chn = 0;
	scanf("%s", s);
	while (*p)
	{
		if ('C' == *p)
		{
			c++;//c 的个数
		}
		else if ('H' == *p)
		{
			ch+=c;  //因为遇到了h,而前面有多少个c,所以现在就有多少ch,chn也一样
		}
		else if ('N' == *p)
		{
			chn+=ch;
		}
		p++;
	}
	printf("%lld ", chn);
	return 0;
}

到这里题目就做完了,然后突然就想谈一点什么,当然上面这种方法我一开始是没有想出来的,可能也是和大家一样也会很麻烦,也可以说到现在也没有想明白,但可能也想明白的。或许你可能会很疑惑我说的话,想着这人神经病呀,搁着套娃呢,其实不是,这就要说到我想说的一些灵感了,这次也不是第一次,之前递归那段时间这种情况发生更多,而且我一直以为也只是递归那段时间可能才会有的,或者说用得到的。好了,别骂我了,现在就说,其实很简单就是去宏观地去看这一个问题,不要仔细去想这个问题的细节,当然我也不一定说得对,更多的是想来分享这一感触,这是我做了这么多天题的些许领会,又或者说个人认为收获最不一样最大的地方之一,当然我不是来误导别人的,只是说或许可以给你一个更好的思路,一个属于自己的做题思路(当然也有可能会有其他方面的思路,例如小项目?),这对于小白来的成长来说是非常重要的(最起码我自己觉得吧),当然你要是大佬就可以当我没说过,或许再过一段时间又会有不一样的感觉,哈哈。然后可能你现在读到这里有点懵,这人在说什么东西?我们来想一想场景吧,就比如这道题,反正作者笨笨的脑子到现在也没有想明白每一步是怎么得到的,但是如果用我刚才说的思路的话我就能很清晰得去想明白,而且也非常好写(递归也是这样),直接用一个指针,遇到c就++,然后遇到h,就c+=h就是现在ch的个数,然后又遇到h就再ch+=c,就相当于更新现在的ch的个数,然后再遇到n就是chn的个数了。为什么说递归我经常会有这种想法呢,就是因为递归的每一步怎么走的,怎么递出去的,怎么归回来的反正我是可以被绕晕的,你小一点还好,大一点就有点懵,当然递归就是大化小的思想,作者也会用这种也很好想,但是今天是来给大家分享宏观的思想的,就不说那个,作者做递归就可能会用这种宏观的思路(我需要干什么,只需要关键的哪几步就可以了,然后归的条件是什么),诈一听好像就是之前说的递归三问,又或者说大化小,这是因为代码可能写出来是一样的,但是思路不一样,或许大家一般也不会注意这个事情,但好像确实是这个样子。

啰啰嗦嗦说了一大堆有的没的,或许对你有用给了你一些新的想法,又或许没用还骂了我两句这人说的啥?但是这的确是作者临时起意的一种分享,还是希望对大家有用,总的来说就是可能做题做多了然后有着自己的一套思路体系吧。

最后的最后感谢大家的观看!要是觉得对你有用的话,就期待你的三连哈!

再次谢谢!!!

标签:ch,递归,个数,long,C语言,进阶篇,chn,CHN,思路
来源: https://blog.csdn.net/weixin_62700590/article/details/122018454

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有