5 条题解

  • 4
    @ 2023-1-31 11:14:44

    一道很好练习stl的题目 本题主要是哈希表和vector的综合应用 (没clear卡我20分钟)

    #include <bits/stdc++.h>
    using namespace std;
    
    unordered_map<char,int> h;
    vector<int> n;
    
    bool is_prime(int a)
    {
    	if(a == 1) return false;
    	for(int i=2;i<=sqrt(a);i++)
    		if(a%i == 0) return false;
    	return true;
    }
    
    int is_lucky_word(string s)
    {
    	h.clear();
    	n.clear();
    	int mm = 0;
    	for(auto x:s) h[x]++;
    	for(auto x:h)
    		if(x.second!=0) n.push_back(x.second);
    	sort(n.begin(),n.end());
    	mm = n[n.size()-1]-n[0];
    	if(is_prime(mm)) return mm;
    	else return 0;
    }
    
    int main()
    {
    	string s;
    	cin >> s;
    	if(is_lucky_word(s)!=0) cout << "Lucky Word" << endl << is_lucky_word(s);
    	else cout << "No Answer" << endl << 0;
    	return 0;
    }
    
    • 2
      @ 2023-8-13 18:33:14

      python的哦~

      su=['2', '3', '5', '7', '11', '13', '17', '19', '23', '29', '31', '37', '41', '43', '47', '53', '59', '61', '67', '71', '73', '79', '83', '89', '97']
      w=input()
      #w="error"
      x={}
      for i in w:
          if i not in x:
              x[i]=1
          else:
              x[i]+=1
      max=0
      for i in x:
          ii=x[i]
          if ii>max:
              max=ii
      
      min=101
      for i in x:
          ii=x[i]
          if ii<min:
              min=ii
      
      cha=str(max-min)
      if cha in su:
          print("Lucky Word")
          print(cha)
      else:
          print("No Answer")
          print("0")
      
      • 2
        @ 2022-7-13 12:16:39

        #include<bits/stdc++.h> using namespace std;

        int main() { string s; cin>>s; int len=s.length(); int a[26]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; for(int i=0;i<=len-1;i++) { if(s[i]'a') a[0]++; if(s[i]'b') a[1]++; if(s[i]'c') a[2]++;; if(s[i]'d') a[3]++; if(s[i]'e') a[4]++; if(s[i]'f') a[5]++; if(s[i]'g') a[6]++; if(s[i]'h') a[7]++; if(s[i]'i') a[8]++; if(s[i]'j') a[9]++; if(s[i]'k') a[10]++; if(s[i]'l') a[11]++; if(s[i]'m') a[12]++; if(s[i]'n') a[13]++; if(s[i]'o') a[14]++; if(s[i]'p') a[15]++; if(s[i]'q') a[16]++; if(s[i]'r') a[17]++; if(s[i]'s') a[18]++; if(s[i]'t') a[19]++; if(s[i]'u') a[20]++; if(s[i]'v') a[21]++; if(s[i]'w') a[22]++; if(s[i]'x') a[23]++; if(s[i]'y') a[24]++; if(s[i]'z') a[25]++; } int maxn=0,minn=9999; for(int i=0;i<=25;i++) { if(a[i]0) { continue; } if(a[i]!=0) { maxn=max(maxn,a[i]); minn=min(minn,a[i]); } } int k=maxn-minn; int ans=0; if(k0||k1) { cout<<"No Answer"<<endl; cout<<0; return 0; } for(int i=2;i<k;i++) { if(k%i0) { ans++; } } if(ans==0) { cout<<"Lucky Word"<<endl; cout<<k; } else { cout<<"No Answer"<<endl; cout<<0; }

        return 0;
        

        }其实也不多

        • 2
          @ 2022-7-13 11:13:42
          #include<bits/stdc++.h>
          using namespace std;
          int main()
          {
          	string s;
          	cin>>s;
          	int flag=0,len=s.length(),maxn=-999,minn=999,k=1,c,d=1;
          		for(int i=0;i<len;i++)
          	{
          //		cout<<s[i]<<endl;
          		for(int j=i+1;j<len;j++)
          		{
          			if(s[i]==s[j])
          			{
          				d++;
          				break;
          			}
          		}
          		if(d>maxn)
          		{
          			maxn=d;
          			d=1;
          		}
          	}
          
          	cout<<maxn;//最大数
          	for(int i=0;i<len;i++)
          	{
          		for(int j=i+1;j<len;j++)
          		{
          			if(s[i]==s[j])
          			{
          				k++;
          				break;
          			}
          		}
          		if(k<minn)
          		{
          			minn=k;
          					k=1;
          		}
          
          	}
          	cout<<minn;//最小数
          //	c=maxn-minn;
          //	int n=1000;
          //	int a[1001]={0};
          //	for(int i=2;i<=n;i++)
          //	{
          //		a[i]=i;
          //	}
          //	for(int i=2;i<=n;i++)
          //	{
          //		for(int j=2;j<=sqrt(i);j++)
          //		{
          //			if(i%j==0)
          //			{
          //				a[i]=0;
          //				break;
          //			}
          //			
          //		}
          //		if(a[i]!=0)//质数判断
          //		{
          //			if(c==a[i])
          //			{
          //				cout<<"Lucky Word"<<endl<<c;
          //				flag=1;
          //			}
          //		}
          //	}
          //	if(flag!=1)cout<<"No Answer"<<endl<<0;
          }
          

          最大数模块有问题

          • -1
            @ 2025-3-1 13:04:43
            #include<bits/stdc++.h>
            using namespace std;
            string s;
            int a[27],len,maxn=1,minn=100;
            bool f(int x){
                if(x<2){
                    return false;
                }
                for(int i=2;i*i<=x;i++){
                    if(x%i==0){
                        return false;
                    }
                }
                return true;
            }
            int main(){
                cin>>s;
                len=s.length();
                for(int i=0;i<len;i++){
                    a[(int)(s[i]-'a'+1)]++;
                }
                for(int i=1;i<=26;i++){
                    if(a[i]!=0){
                        maxn=max(maxn,a[i]);
                        minn=min(minn,a[i]);
                    }
                }
                if(f(maxn-minn)){
                    cout<<"Lucky Word\n"<<maxn-minn;
                }
                else{
                    cout<<"No Answer\n0";
                }
                return 0;
            }
            
            • 1

            信息

            ID
            265
            时间
            1000ms
            内存
            256MiB
            难度
            7
            标签
            递交数
            1585
            已通过
            405
            上传者