
算法
YULIU_
I'm coming
展开
-
C语言 约瑟夫环就地逆制 用循环链表实现
约瑟夫问题是个著名的问题:N个人围成一圈,第一个人从1开始报数,报M的将被杀掉,下一个人接着从1开始报。如此反复,最后剩下一个,求最后的胜利者。例如只有三个人,把他们叫做A、B、C,他们围成一圈,从A开始报数,假设报2的人被杀掉。●首先A开始报数,他报1。侥幸逃过一劫。●然后轮到B报数,他报2。非常惨,他被杀了●C接着从1开始报数●接着轮到A报数,他报2。也被杀死了。●最终胜利者是C原创 2023-02-03 18:03:26 · 256 阅读 · 1 评论 -
【替换字符串中文字符】python字符串一次替换多个字符使用replace替换多处
遇到问题,如何替换爬取的时间数据是用中文字符保存的,如1997年6月6日,想要替换成1997-6-6,方法如下原创 2023-01-13 16:06:10 · 619 阅读 · 0 评论 -
兰顿蚂蚁
兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。 平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只“蚂蚁”。 蚂蚁的头部朝向为:上下左右其中一方。 蚂蚁的移动规则十分简单: 若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格; 若蚂蚁在白格,左转90度,将该格改为黑格,并向前移一格。 规则虽然简单,蚂蚁的行为却十分复杂。刚刚开始时留下的原创 2017-03-16 23:04:00 · 438 阅读 · 0 评论 -
C++里string转换为int
c语言形式std::string str; int i = atoi(str.c_str()); c++形式std::string str; int i = std::stoi(str); 同样, 可以使用 stol(long), stof(float), stod(double) 等. 参考: http://en.cppreference.com/w/cpp/string/basic原创 2017-04-15 22:26:37 · 16271 阅读 · 0 评论 -
C++的string长度和插入函数
size#include<iostream>int main(){using namespac std;string a="abc";cout<<a.size()<<endl;}(2)a.length()(同size(),这是早期开发string类时加入的,现在还可以用,但其他STL容器没有此方法)解释一下sizeof的结果:sizeof运算符返回对象或类型实际占有的空间,string对原创 2017-04-15 22:39:59 · 17626 阅读 · 0 评论 -
算法训练 未名湖边的烦恼
问题描述 每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法) 输入格式 两个整数,表示m和n 输出格式原创 2017-05-11 21:18:58 · 308 阅读 · 0 评论 -
分离目录路径和文件名
5-2 分离目录路径和文件名 输入文件目录路径和文件名,要求分离成目录路径和文件名分别输出输入格式:例如:输入c:\windows\winhelp.exe输出格式:c:\windows (目录路径)winhelp.exe (文件名)输入样例:/usr/bin/man 输出样例:/usr/bin man#include <iostream>#include<string>using nam原创 2017-05-15 22:48:09 · 3621 阅读 · 0 评论 -
数据结构课后习题 马踏棋盘 c语言版
将马随机放在国际象棋的8×8棋盘某个方格中, 马按走棋规则进行移动。 要求每个方格只进入一次,走遍棋盘上全部64个方格。记录其步骤 转载的图片#include#include#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef struct //记录坐标位置{ int x;......原创 2016-10-20 23:16:22 · 12986 阅读 · 9 评论 -
图的基本算法(BFS和DFS)
从顶点1开始进行广度优先搜索: 初始状态,从顶点1开始,队列={1} 访问1的邻接顶点,1出队变黑,2,3入队,队列={2,3,} 访问2的邻接结点,2出队,4入队,队列={3,4} 访问3的邻接结点,3出队,队列={4} 访问4的邻接结点,4出队,队列={ 空} 结点5对于1来说不可达。 上面的图可以通过如下邻接矩阵表示:#include <iostream>...原创 2018-03-30 22:57:37 · 281 阅读 · 0 评论 -
编译原理的词法分析器设计与实现
https://download.youkuaiyun.com/download/xuptacm/10383733 完整项目包int wordanalysis()//词法分析,分为3部分,完整项目在下面{ if ((a[i] &gt;= 'A'&amp;&amp;a[i] &lt;= 'Z')||(a[i]&gt;='a'&amp;&amp;a[i]&lt;='z')) //原创 2018-04-24 11:27:13 · 2962 阅读 · 0 评论 -
Anagrams问题
Anagrams问题 Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。 编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。 输入格式:输入有两行,原创 2017-03-16 23:02:14 · 427 阅读 · 0 评论 -
全排列next_permutation()的用法
1.std::next_permutation函数原型 template bool next_permutation (BidirectionalIterator first, BidirectionalIterator last ); template #include <cstdio> #include <algorithm> #include <iostream> using原创 2017-03-29 21:48:03 · 2047 阅读 · 0 评论 -
买不到的数目
问题描述 小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。 小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。 你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。 本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。 输入格式 两个原创 2017-03-12 16:56:27 · 392 阅读 · 0 评论 -
二叉树的层次遍历
#include<stdio.h>#include<malloc.h>typedef struct BiNode{ char data; struct BiNode *lchild,*rchild; struct BiNode* parent; }BiNode,*BiTree; //定义树结点结构typedef struct Qu原创 2016-11-25 21:39:31 · 531 阅读 · 0 评论 -
通过先序中序遍历建立二叉树
#include<stdio.h> #include<stdlib.h>#include<string.h>typedef struct node { char data; struct node *Lchild; struct node *Rchild; }*BiTree,BiNode;int Mark_Root_Pos(char in[], c原创 2016-12-19 20:15:09 · 675 阅读 · 0 评论 -
通过中序后序建立二叉树
#include<stdio.h> #include<stdlib.h>#include<string.h>typedef struct node { char data; struct node *Lchild; struct node *Rchild; }*BiTree,BiNode;int Mark_Root_Pos(char in[], c原创 2016-12-19 20:16:24 · 1224 阅读 · 0 评论 -
二叉树的建立与三种遍历
之前照着书上描写的通过递归建立二叉树后发现在输入时是死循环,便认为是自己程序出错后面发现自己的程序并没有出错,而是自己对于二叉树的定义理解不深刻。 在程序中 输入要严格按照正确的顺序才能结束.这里要用到二叉树的一个性质,就是说对于有n个节点的二叉树,就有n+1个空域,在这里即为如果你输入了n个元素,那么一定要有n+1个#才会结束迭代过程. 例如abcd#####原创 2016-11-18 20:03:55 · 14253 阅读 · 0 评论 -
数据结构课后习题 实现多项式的加法 c语言版
只写了多项式的建立和加法,减法和乘除也只是在上面的步骤上对指数和系数进行操作! 输出是先系数后指数!#include"stdio.h"#include"stdlib.h"typedef struct PolyNode *Polynomial;/*定义结点*/struct PolyNode/*建立节点,coef为系数,expon为指数*/{ int coef; int exp原创 2016-09-25 15:12:33 · 6014 阅读 · 3 评论 -
二叉树的非递归遍历
#include"stdio.h"#include"stdlib.h"#define MAXSIZE 100 typedef struct Node{ char data; struct Node* Lchild; struct Node* Rchild; struct Node* parent; }BiTNode,*Bi原创 2016-11-24 19:27:40 · 478 阅读 · 0 评论 -
哈夫曼编/译码器
这张编码表的特殊之处在于,它是根据每一个源字符出现的估算概率而建立起来的(出现概率高的字符使用较短的编码,反之出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,从而达到无损压缩数据的目的)。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。2.编码:利用已建立好的哈夫曼树,获得各个字符的哈夫曼编码,并对正文进行编码,然后输出编码结果,并存入文件(.souce),统计文件中字符出现的频度,并以这些字符的频度作为权值,建立哈夫曼树。原创 2016-12-29 10:57:10 · 2549 阅读 · 1 评论 -
动态规划:最长上升子序与0-1背包问题
问题描述一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这里1 <= i1 < i2 < … < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, 4, 8)等等。这些子序列中最原创 2017-03-06 21:00:21 · 645 阅读 · 0 评论 -
A - Night at the Museum
Description Grigoriy, like the hero of one famous comedy film, found a job as a night security guard at the museum. At first night he received embosser and was to take stock of the whole exposition.Em原创 2016-11-18 20:11:03 · 548 阅读 · 0 评论