1 条题解

  • 0
    @ 2025-4-12 21:54:22

    C :

    #include<stdio.h>
    #include<string.h>
    
    int main(){
        char str[100];
        int i, count, len,heap;
        while(scanf("%s", str)==1){
            count=0;
            heap=0;
            len=strlen(str);
            for(i=0; i<len; i++){
                if(str[i]=='D'){
                    if(count>0){
                        printf("%d", count+1);
                        heap++;
                        count=0;
                        break;
                    }
                }
                else{
                     count++;
                }
            }
            i++;
            for(; i<len; i++){
                if(str[i]=='D'){
                    if(count>0){
                        printf(" %d", count+1);
                        heap++;
                        count=0;
                    }
                }
                else{
                     count++;
                }
            }
            if(heap==0) printf("0\n"); 
            else printf("\n");        
        }
        return 0;
    }
    
    

    C++ :

    #include <cstdio>
    #include <stack>
    using namespace std;
    
    int main() {
    	int i, flag, k;
    	char s[51];
    	while (scanf("%s", s) != EOF) {
    		stack<char> S;
    		for (flag = k = i = 0; s[i]; i++) {
    			if (s[i] == 'D') {
    				if (!S.empty()) {
    					if (flag)
    						printf(" %d", S.size() + 1);
    					else {
    						printf("%d", S.size() + 1);
    						flag = 1;
    					}
    					k = 1;
    				}
    				while (!S.empty())
    					S.pop();
    			} else
    				S.push(s[i]);
    		}
    		if (!k)
    			printf("0");
    		printf("\n");
    	}
    	return 0;
    }
    

    Java :

    import java.io.*;
    import java.util.*;
    import java.util.Arrays;
    
    public class Main{
      public static void main(String [] args){
        final int NUM = 51;
        String  s;
        int i, j;
        Scanner in = new Scanner(System.in); 
        while(in.hasNext()){
          s = in.next();
          int[][]result = new int[NUM][2];
          for(i=0; i<NUM; i++){
            result[i][0] = 0;
            result[i][1] = 0;
          }
    
          int statics = 0;
          int length = s.length();
    
          for(i=0; i<length; i++){
            if(s.charAt(i) != 'D'){
              result[statics][0]++;
            }
            else{
              if(result[statics][0] > 0)
                result[statics][1] = 1; 
              else{
                result[statics][1] = 0;
                continue;
              }
              statics++;
            }
          }
    
          i=0; 
          while(result[i][0] != 0){
            
            if(result[i][1] == 0){
              i++;
              continue;
            }
            if(i != 0)
              System.out.print(" ");
            System.out.print(result[i][0]+1);
            
            i++;
          }
          if(result[0][1] == 0)
            System.out.print("0");
    
          System.out.print("\n");
        }
      }
    }
    

    PHP :

    <?php
    	define('NUM', 51);
    	//while(fscanf(STDIN, "%s", $s) != -1){
    	while(!feof(STDIN)){
    		fscanf(STDIN, "%s", $s);
    		//memset($result, 0, NUM*2);
    		$result = array();
    		for($i=0; $i<NUM; $i++){
    			$result[$i][0] = 0;
    			$result[$i][1] = 0;
    		}
    
    		$statics = 0;
    		$length = strlen($s);
    
    		for($i=0; $i<$length; $i++){
    			if($s[$i] != 'D'){
    				$result[$statics][0]++;
    			}
    			else{
    				if($result[$statics][0] > 0)
    					$result[$statics][1] = 1;	//为1才是合法的书堆
    				else{
    					$result[$statics][1] = 0;
    					continue;
    				}
    				$statics++;
    			}
    		}
    
    		$i=0; 
    		while($result[$i][0] != 0){
    			
    			if($result[$i][1] == 0){
    				$i++;
    				continue;
    			}
    			if($i != 0)
    				print_r(" ");
    			print_r($result[$i][0]+1);
    			
    			$i++;
    		}
    		if($result[0][1] == 0)
    			print_r("0");
    
    		print_r("\n");
    	}
    ?>
    
    • 1

    信息

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