牛客小白月赛86-水平考试

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

点击查看代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	string a,b;
	for(int i=0;i<n;i++)
	{
		cin>>a>>b;
		if(a.size()>b.size()){
			cout<<0<<endl;
		}
		else{
				int mark=1;
			for(int i=0;i<a.size();i++)
			{
				int pos=b.find(a[i]);
				if(pos==std::string::npos) {
					cout<<0<<endl;
					mark=0;
					break;
				}
			}
			if(mark==1) cout<<10<<endl;
		}
	}
	return 0;
}
这是自己写的常规写法 接下来是大神的stl大法
点击查看代码
#include <bits/stdc++.h>
using namespace std;
int main() {
  cin.tie(nullptr)->sync_with_stdio(false);
  cout << fixed << setprecision(20);
  int t;
  cin >> t;
  for (int ti = 0; ti < t; ti += 1) {
    string s, f;
    cin >> s >> f;
    cout << (all_of(s.begin(), s.end(),
                    [&](char c) { return count(f.begin(), f.end(), c); })
                 ? "10"
                 : "0")
         << "\n";
  }
}

all_of是一个算法,用于检查一个范围内的所有元素是否都满足某个条件。在这里,它检查字符串s`中的所有字符是否都满足前面提到的lambda函数所描述的条件。
all_of(s.begin(), s.end(), ... )

这是一个lambda函数,它捕获了其所在作用域的所有变量(通过引用)。对于传递给它的每个字符c,它会返回这个字符在字符串f中出现的次数。
[&](char c) { return count(f.begin(), f.end(), c); }

posted on 2024-01-20 21:26  swj2529411658  阅读(28)  评论(0)    收藏  举报

导航