1 条题解

  • 0
    @ 2024-12-24 9:59:26

    C :

    #include<stdio.h>
    #include<string.h>
    void sort_string(char a[])
    {
    	int i,j,len=strlen(a);
    	char t;
    	for(i=0;i<len;i++)
    	{
    		for(j=i+1;j<len;j++)
    		{
    			if(a[i]>a[j])
    			{
    				t=a[i];
    				a[i]=a[j];
    				a[j]=t;
    			}
    		}
    	}
    }
    int main()
    {
    	char mstr[1001],sstr[101],temp[101];
    	while(scanf("%s",mstr)!=EOF)
    	{
    		scanf("%s",sstr);
    		int i,endpos,mlen=strlen(mstr),slen=strlen(sstr);
    		int count=0;
    		sort_string(sstr);
    		//printf("@@%s\n",sstr);
    		for(i=0;i<=mlen-slen;i++)
    		{
    			endpos=i+slen;
    			char t=mstr[endpos];
    			mstr[endpos]='\0';
    			strcpy(temp,&mstr[i]);
    			mstr[endpos]=t;
    			sort_string(temp);
    			//printf("!!%s\n",temp);
    			if(strcmp(temp,sstr)==0)
    				count++;
    		}
    		printf("%d\n",count);
    	}
    	return 0;
    }
    
    

    C++ :

    #include<cstdio>
    #include<string>
    using namespace std;
    
    int main()
    {
    	char a[1001],b[101];
    	string A,B,C,D;
    	int i,j,la,lb,s;
    	while(scanf("%s%s",a,b)!=EOF)
    	{
    		A=a;
    		B=b;
    		la=A.length();
    		lb=B.length();
    		for(s=i=0;i<la;i++)
    		{
    			C=A.substr(i,lb);
    			for(j=0;j<lb;j++)
    			{
    				D=B.substr(j);
    				D.append(B,0,j);
    				if(C==D)
    				{
    					s++;
    					break;
    				}
    			}
    		}
    		printf("%d\n",s);
    	}
    	return 0;
    }
    

    Java :

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class Main
    {
    
        public static void main(String[] args) throws IOException
        {
    	// TODO Auto-generated method stub
    
    	String A, B;
    	int lenA, lenB, len, count,count2, duplicate;
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	A = br.readLine();
    	B = br.readLine();
    	while(true)
    	{
    	    
    	    if (A == null || B == null)
    	    {
    		break;
    	    }
    	    lenA = A.length();
    	    lenB = B.length();
    	    
    	    count = 0;
    	    len = lenA - lenB + 1;
    	    for(int i = 0;i < len;i++)
    	    {
    		count2=0;
    		for(int j = 0;j < lenB;j++)
    		{
    
    		    if (equalsAB(A, i, B, j, lenB))
    		    {
    			duplicate = 0;
    			count2++;
    			for(int k = j + 1;k < lenB;k++)
    			{
    			    if (equalsBB(B, j, B, k, lenB))
    			    {
    				duplicate=1;// 重复的
    				break;
    			    }
    			}
    			count2 -= duplicate ;// 减去重复的
    		    }
    		}
    		count+=count2;
    
    	    }
    	    System.out.println(count);
    	    A = br.readLine();
    	    B = br.readLine();
    	}
        }
    
        static boolean equalsAB(String cs1, int offset1, String cs2, int offset2, int len)
        {
    	for (int i = 0; i < len; i++)
    	{
    		if (cs1.charAt(offset1+i)!=cs2.charAt((offset2+i)%len))
    		{
    			return false;
    		}
    	}
    	return true;
        }
    
        static boolean equalsBB(String cs1, int offset1, String cs2, int offset2, int len)
        {
    	for(int i = 0;i < len;i++)
    	{
    	    if (cs1.charAt((offset1 + i) % len) != cs2.charAt((offset2 + i) % len))
    	    {
    		return false;
    	    }
    	}
    	return true;
        }
    
    }
    
    
    • 1

    信息

    ID
    1457
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者