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

自己如何做家政网站在线开发培训网站建设

自己如何做家政网站,在线开发培训网站建设,牡丹江最新信息网,用asp.net做的 购物网站视频福尔摩斯从 X 星收到一份资料,全部是小写字母组成。 他的助手提供了另一份资料:许多长度为 8 的密码列表。 福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的。 请你编写一个程序,从第一份资料中搜索可能隐藏密码的位置…

福尔摩斯从 X 星收到一份资料,全部是小写字母组成。

他的助手提供了另一份资料:许多长度为 8 的密码列表。

福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的。

请你编写一个程序,从第一份资料中搜索可能隐藏密码的位置。

要考虑密码的所有排列可能性。

输入格式

第一行:一个字符串 s,全部由小写字母组成。

紧接着一行是一个整数 n,表示以下有 n 行密码。

紧接着是 n 行字符串,都是小写字母组成,长度都为 8。

输出格式

一个整数,表示每行密码的所有排列在 s 中匹配次数的总和。

数据范围

字符串 s 的长度不超过 220,
1≤n≤1000

输入样例:
aaaabbbbaabbcccc
2
aaaabbbb
abcabccc
输出样例:
4
样例解释

第一个密码匹配了 3 次,第二个密码匹配了 1 次,一共 4 次。

题解:

        最早开始的思想是前缀和,用一个二维向量记录st中每一位之前的字母数量情况,再与那1000个密码进行比较,效率O(N2).

        后面TLE了,于是换了移动窗口的思想,但是还是TLE了。

        最后使用了sort和map,用map记录顺序情况的个数,然后遍历st,使用substr进行切割,然后排序,最后ans+=map[t]即可。时间O(N*Log2N)。

代码:

AC代码:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iomanip>
#include<queue>
#include<stack>
#include<vector>
#include<unordered_set>
#include<unordered_map>
#include<map>
#include<set>
using namespace std;
typedef long long int ll;
const int INF=1e16;long long int ans=0;
map<string,int> mp;void solve(){int n;string st;cin >> st;cin >> n;for(int i=0;i<n;i++){string s;cin >> s;sort(s.begin(),s.end());mp[s]++;}for(int i=0;i<=st.size()-8;i++){string a=st.substr(i,8);sort(a.begin(),a.end());ans+=mp[a];}cout << ans << "\n";
}int main(){solve();
}

TLE代码:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iomanip>
#include<queue>
#include<stack>
#include<vector>
#include<unordered_set>
#include<unordered_map>
#include<map>
#include<set>
using namespace std;
typedef long long int ll;
const int INF=1e16;vector<vector<int>> pre((1<<20)+5,vector<int>(30,0));
vector<vector<int>> m(1001,vector<int>(30,0));
long long int ans=0;void solve(){int n;string st;cin >> st;cin >> n;for(int i=0;i<n;i++){string s;cin >> s;for(int j=0;j<s.size();j++){m[i][s[j]-97]++;}}vector<int> a(30,0);int l=1,r=8,last=0;for(int i=0;i<8;i++){a[st[i]-97]++;}for(int i=0;i<1001;i++){if(m[i]==a){ans++;last++;}}while(r<st.size()){if(st[r]==st[l-1]){ans+=last;}else{a[st[r]-97]++;a[st[l-1]-97]--;last=0;for(int i=0;i<1001;i++){if(m[i]==a){ans++;last++;}}}r++;l++;}cout << ans << "\n";
}int main(){solve();
}

http://www.dtcms.com/a/464673.html

相关文章:

  • 佛山做网站的公司网站建设公司美工如何找
  • 工作室 网站手机一键生成户型图
  • 网站域名 英文孝感网站开发选优搏
  • 网站意识形态建设如何制作微信小程序店铺
  • 百度网站提交入口手机源码网
  • 网站建设维护更新iis 显示网站建设中
  • 西安网站建设联系方式少儿python基础教程
  • 搭建网站服务器平台的三种方式大一html网页制作作业
  • 做跳转链接到自己的网站诊断网站seo现状的方法
  • 公司网站做么做百度排名做垂直导购网站还行吗
  • 网站渗透鞍山seo优化
  • 虚拟网站源码无锡哪里有做网站的公司
  • 晋城市公共事业建设局网站关键词首页排名优化
  • 网站建设与管理简介最好用的网站开发软件
  • 福州免费网站建站模板想学做宝宝食谱上什么网站
  • 专业营销型网站crm 都免费了
  • 扁平化设计网站欣赏seo推广优化费用
  • 温州二井建设有限公司网站昆明汽车建站网站模板
  • 做网站4核是什么意思成都大型网站建设公司
  • 网站建设课程简介图片设计一个简单的广告
  • 网站改中文wordpress付费才能看
  • 建设官方网站企业登录网站后台维护系统
  • 网站开发googlewordpress伪静态规则怎么写
  • 建设银行义乌分行网站广州 关于进一步优化
  • wordpress 优势企业seo案例
  • 从什么网站建网站好免费网站软件制作
  • 建筑公司网站能显示二级建造师报名吗徐州app制作
  • 网站建设最简单的教程wordpress 浏览数
  • html5响应式设计公司网站模板整站html源码下载官网设计需要多少钱
  • 网站制作上哪学校公司查询信息查询