zoukankan      html  css  js  c++  java
  • 牛客小白月赛36 B. 最短串(暴力)

    链接:https://ac.nowcoder.com/acm/contest/11213/B
    来源:牛客网

    题目描述

    给定22个由小写字母和问号组成的字符串aa与bb,问号代表你想要的任何字符。

    请你找出最短的字符串ss,要求ss包含aa和bb两个字符串,你只需要输出ss的长度即可。

    输入描述:

    第一行一个字符串aa,∣a∣≤5000∣a∣≤5000。第二行一个字符串bb,∣b∣≤5000∣b∣≤5000。
    

    输出描述:

    输出最短字符串ss的长度。
    

    示例1

    输入

    复制

    abc
    ?de
    

    输出

    复制

    5
    

    水题,直接暴力匹配即可。比赛的时候看到过的人不算多想了想脑瘫写了kmp调到吐血。。

    #include <bits/stdc++.h>
    using namespace std;
    string s, t;
    bool equal(char a, char b) {
    	if(a == '?' || b == '?' || a == b) return 1;
    	else return 0;
    }
    int calc(string s, string t) {
    	int ret = 0x3f3f3f3f;
    	for(int i = 0; i < s.size(); i++) {
    		bool flag = 1;
    		for(int j = 0; j < t.size() && i + j < s.size(); j++) {
    			if(!equal(s[i + j], t[j])) {
    				flag = 0;
    				break;
    			}
    		}
    		if(flag) {
    			ret = min(ret, max(i + (int)t.size(), (int)s.size()));
    		}
    	}
    	return ret;
    }
    int main() {
    	cin >> s >> t;
    	int ans = (int)s.size() + (int)t.size();
    	ans = min(ans, min(calc(s, t),calc(t, s)));
    	cout << ans;
    	return 0;
    }
    
  • 相关阅读:
    创建二叉树
    并查集
    opn模块
    【ES6】map、reduce、filter、sort、箭头函数、class继承、yield
    css应用视觉设计
    json解决ajax跨域的原理
    flex盒子布局
    前后台交互ajax请求模块
    react后台项目开发(一)
    高阶函数&&高阶组件(二)
  • 原文地址:https://www.cnblogs.com/lipoicyclic/p/15022115.html
Copyright © 2011-2022 走看看