【王道】【4.2.2】【串的模式匹配算法----KMP算法】【彻底搞懂KMP算法】

一.学习KMP 的 i,j指针 的秘密之前,需要熟知next[]数组的原理以及它与模式串P所有前缀的关系

KMP之:【next数组原理】【模板速记】_bei2002315的博客-CSDN博客

二.再先学一下暴力的模式匹配算法,熟知暴力算法中 i,j指针是如何运转的

【王道】【4.2.1简单的模式匹配算法】【暴力匹配】_bei2002315的博客-CSDN博客

三.正式进入KMP匹配的学习

四.考研版本的KMP算法: 

 

/*
KMP算法考研版本写法 
*/

#include <bits/stdc++.h>
using namespace std;
const int N=110;
int ne[N];
char s[N],p[N];
int n,m;

void get_next(char *p,int *ne)
{
	ne[1]=0;  //以0开头 
	int i=1,j=0;  //y总版本i是从2开始的,因为哪里是以-1,0开头此处打算以0,1开头
	
	while(i<m)  //m-1次,因为最后一个ne 被第一个ne挤出去了 
	{
		if(j==0||p[i]==p[j])
		{
			++i;   //i是从2开始的,一直到n 
			++j;
			ne[i]=j;
		}
		else  //只要j存在并且p[i]!=p[j+1],就回退 
		{
			j=ne[j];
		}
	}
}

void kmp(char *s,char *p,int *ne)
{
	int i=1,j=1;
	
	while(i<=n&&j<=m)
	{
		if(j==0||s[i]==p[j]) 
		{
			++i;
			++j;
		}
		else{
			j=ne[j];
		}
		
		if(j>m)
		{
			cout<<i-m<<" ";   //输出在主串中出现的位置 
		}
	}
	
}

int main()
{
	
	cin>>s+1>>p+1;
	n=strlen(s+1);
	m=strlen(p+1);
	get_next(p,ne);
	kmp(s,p,ne);
	

	return 0;
}

 

### 回答1: anaconda是一个开源的Python数据科学平台,它包含了Python解释器、各种科学计算库和开发工具。换源是指将anaconda软件包管理器的镜像源更改为其他服务器,以提高软件包下载和更新的速度。恢复默认源则是将anaconda软件包管理器的镜像源恢复为原始的默认设置。 要将anaconda的源更改为其他服务器,可以按照以下步骤操作: 1. 打开Anaconda Prompt(Windows)或终端(Mac/Linux)。 2. 输入以下命令:conda config --set show_channels_urls yes 3. 然后输入以下命令:conda config --add channels <新源地址> 这里的"<新源地址>"是指你想要更改为的镜像源地址,可以从国内的镜像站点获取地址。 4. 输入以下命令:conda config --set channel_priority strict 这个命令将设置通道优先级为严格,确保安装软件包时优先使用新源。 5. 输入以下命令:conda update conda 这个命令会更新conda软件包管理器,以便能够使用新的镜像源。 恢复anaconda的默认源则可以按照以下步骤操作: 1. 打开Anaconda Prompt(Windows)或终端(Mac/Linux)。 2. 输入以下命令:conda config --remove-key channels 这个命令会删除所有已设置的镜像源。 3. 输入以下命令:conda config --set channel_priority false 这个命令会将通道优先级设置为默认值,即在下载软件包时同时使用多个源。 4. 输入以下命令:conda update conda 这个命令会更新conda软件包管理器,以便恢复为默认的镜像源。 通过上述步骤,可以很方便地将anaconda的源更改为其他服务器或恢复为默认设置,以满足不同的需求。 ### 回答2: 要想在Anaconda中更改软件源或恢复默认软件源,可以按照以下步骤进行操作。 1. 打开终端或命令提示符窗口,进入Anaconda安装目录。在Windows系统中,默认路径是C:\Users\用户名\Anaconda3,而在Linux或Mac系统中,默认路径是/home/用户名/anaconda3/。 2. 运行以下命令以备份当前的软件源配置文件: ``` conda config --show > condarc_backup ``` 这将在当前目录下创建一个名为"condarc_backup"的文件,其中包含当前软件源的配置信息。 3. 若想更改软件源,可以使用以下命令: ``` conda config --add channels 频道名称 ``` 例如,要添加清华大学TUNA源作为新的软件源,可以运行: ``` conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ ``` 在命令中,"https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/"是清华大学TUNA源的URL地址。 4. 若想恢复默认软件源,可以运行以下命令: ``` conda config --remove-key channels ``` 这将从Anaconda的配置文件中删除所有已添加的软件源,从而恢复到默认的软件源配置。 5. 更改或恢复软件源后,可以使用以下命令更新Anaconda的软件包: ``` conda update --all ``` 这将检查可用的软件包更新,并安装相应的更新。 通过上述步骤,您可以在Anaconda中轻松更改或恢复默认的软件源配置,以满足您在开发环境中的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值