摘要:
题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必 阅读全文
摘要:
题目描述 给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0-9的拼法如图所示: 注意: 加号与等号各自需要两根火柴棍 如果A≠B,则A+B=C与B+A=C视为不同的等式(A,B,C>=0) n根火柴棍必 阅读全文
摘要:
题目描述 已知 n个整数 x1,x2,…,xn,以及11个整数k(k<n)。从n个整数中任选k个整数相加,可分别得到一系列的和。例如当n=4,k=3,4个整数分别为3,7,12,19时,可得全部的组合与它们的和为: 3+7+12=22 3+7+19=29 7+12+19=38 3+12+19=34 阅读全文
摘要:
题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理: 1.不作任何处理; 2.在它的左边加上一个自然数,但该自然数不能超过原数的一半; 3.加上数后,继续按此规则进行处理,直到不能再加自然数为止. 输入格式 1个 阅读全文
摘要:
在Python语言中,要筛选序列中的元素,通常最简单的方法是使用列表推导式(list comprehension)。例如:使用列表推导式的一个潜在缺点就是如果原始输入非常大的话,这么做可能会产生一个庞大的结果。如果这是你需要考虑的问题,那么可以使用生成器表达式通过迭代的方式产生筛选的结果。除了筛选,列表推导式和生成器表达式也具有同时对数据做转换的能力。 阅读全文
![Python:列表推导式和字典推导式](https://img2023.cnblogs.com/blog/1784958/202211/1784958-20221128001531533-1996943882.png)
摘要:
用C++实现图的DFS和BFS(邻接表) 概述 图的储存方式有邻接矩阵和邻接表储存两种。由于邻接表的实现需要用到抽象数据结构里的链表,故稍微麻烦一些。C++自带的STL可以方便的实现List,使算法的实现变得简单起来 算法概述 为了让我们的算法更有普适性,我们将非连通图也考虑在内。其实,要想遍历到类 阅读全文
摘要:
二叉查找树的相关操作 概述 二叉查找树(Binary Search Tree)是一种非常重要的数据结构。它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别 阅读全文
摘要:
堆排序 概述 堆排序(这里指从小到大)巧妙地运用了大顶堆(一种每个根节点都大于其两个子节点的特殊二叉树)的性质对数组进行排序,时间复杂度为O(NlogN)。不仅在排序之前要构建大顶堆,而且每轮交换都要重新下沉堆顶元素以维护大顶堆,显得不是很方便。但是因为这个方法设计巧妙,直观而容易理解,我们还是要学 阅读全文
摘要:
Kruscal算法求图的最小生成树 概述 和Prim算法求图的最小生成树一样,Kruscal算法求最小生成树也用到了贪心的思想,只不过前者是贪心地选择点,后者是贪心地选择边。而且在算法的实现中,我们还用用到了并查集(也称不相交集的)Union /Find 算法来判断两个节点连通后会不会形成一个环。该 阅读全文
摘要:
图的最小生成树算法及最短路径算法 ——Prim算法,Dijkstra算法及Floyd算法 概述 我的上一篇博客图的DFS与BFS(C++)中谈到了用C++实现图的构建和遍历。这次,我仍然准备构建储存结构为邻接矩阵的无向图,来实现求图的最小生成树的Prim算法,求图单源最短路径的Dijkstra算法, 阅读全文