1 条题解

  • 0
    @ 2025-10-10 15:45:27

    C :

    #include<stdio.h>
    #include<math.h>
    #include<string.h>
    struct ppppp
    {
        int sum;
        int k;
    } su[9999];
    int main ()
    {
        for(int i=0; i<9999; i++)
            su[i].sum=0;
        char p[999999];
        scanf("%s",p);
        int n=strlen(p);
        p[n]='*';
        int sum=0;
        int j=0;
        int flag=0,k;
        for(int i=0; i<=n; i++)
        {
            if(p[i]>='0'&&p[i]<='9')
            {
                if(flag==0)
                {
                    flag=1;
                    k=i+1;
                    sum=sum+p[i]-'0';
                    su[j].k=k;
                }
                else
                {
                    sum=sum*10+p[i]-'0';
                }
            }
            else
            {
                if(sum!=0)
                {
                    su[j].sum=sum;
                    j++;
                    sum=0;
                    flag=0;
                }
                else
                {
                    sum=0;
                    flag=0;
                }
            }
        }
        int maxx=-100;
        for(int i=0; i<j; i++)
        {
            if(su[i].sum>maxx)
            {
                maxx=su[i].sum;
                k=su[i].k;
            }
        }
        printf("%d",k);
        return 0;
    }
    

    C++ :

    #include <iostream>
    #include <cstring>
    using namespace std;
    
    int main(){
    	char s[1000];
    	char w[1000];
    	char f[1000] = {'\0'};
    	gets(s);
    	int i,j,k = 0,max = 0;
    	for (i = 0;i < strlen(s);i++){
    		if (s[i] >= '0' && s[i] <= '9'){
    			w[k] = s[i];
    			k++;
    			if (i == strlen(s) - 1 || s[i + 1] < '0' || s[i + 1] > '9'){
    				w[k] = '\0';
    				j = i - strlen(w) + 1;
    				//cout<<w<<" "<<j<<endl;
    				if (strlen(w) > strlen(f)){
    					strcpy(f,w);
    					max = j + 1;
    				}else if (strlen(w) == strlen(f) && strcmp(w,f) > 0){
    					strcpy(f,w);
    					max = j + 1;
    				}
    				k = 0;
    			}
    		}
    	}
    	cout<<max;
    }
    

    Pascal :

    var
    s:string; 
    a:array[1..255,1..2] of longint;
    n,i,j,k,l:longint;
    begin
    readln(s);
    k:=1;
    for i:=1 to length(s) do
    begin
    j:=i;
    while(ord(s[j])<=ord('9')) and(ord(s[j])>=ord('0')) do
    begin
    a[k,1]:=a[k,1]*10+ord(s[j])-ord('0');
    inc(j);
    end;
    if a[k,1]>0 then a[k,2]:=i;
    inc(k);
    end;
    k:=0;
    for i:=1 to 255 do
    if a[i,1]>k then begin k:=a[i,1]; l:=a[i,2]; end;
    writeln(l);
    end.
    

    Java :

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            String str = sc.next();
            String str2 = str.replaceFirst("[^0-9]+", "");
            String str3 = str2.replaceAll("[^0-9]+", " ");
            String[] nums = str3.split(" ");
            int[] number = new int[nums.length];
            int max = 0;
            for (int i = 0; i < nums.length; i++) {
                number[i] = Integer.parseInt(nums[i]);
                if(number[i] > max)
                    max = number[i];
            }
            String maxstr = String.valueOf(max);
            System.out.println(str.indexOf(maxstr) + 1);
        }
    }
    

    Python :

    str1=input()
    max = "0"    # 存储值最大的数字
    string = "" # 将连续的数字拼接起来
    for i in range(1,len(str1)) :
        if str1[i-1].isdigit():
           string += str1[i-1]
        else:
           if string == "":
              continue;
           elif int(string) > int(max):
              max = string
              string = ""
    print(str1.find(max) + 1)
    
    • 1

    信息

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