• akoj-1076-Encoding


    Encoding

    Time Limit:1000MS  Memory Limit:65536K
    Total Submit:62 Accepted:35

    Description

    Given a string containing only 'A' - 'Z', we could encode it using the following method: 

    1. Each sub-string containing k same characters should be encoded to "kX" where "X" is the only character in this sub-string. 

    2. If the length of the sub-string is 1, '1' should be ignored. 

    Input

    The first line contains an integer N (1 < = N < = 100) which indicates the number of test cases. The next N lines contain N strings. Each string consists of only 'A' - 'Z' and the length is less than 10000.

    Output

    For each test case, output the encoded string in a line.

    Sample Input

    2
    ABC
    ABBCCC

    Sample Output

    ABC
    A2B3C

    Source

    #include <stdio.h>
    #include <string.h>
    #define MAXN 10000 + 10
    
    char str[MAXN];
    
    int main()
    {
    
    	int n, i, k, c, thisn, maxn;
    	scanf("%d", &n);
    	while (n--)
    	{
    		c = 0;
    		scanf("%s", str);
    		k = strlen(str);
    		str[k] = -1; // 这里的输入长度小于定义的长度所以不会越界 
    		thisn = maxn = 0;
    		for ( i=0; i<k; i++ ) {
    			thisn++;
    			if ( thisn > maxn ) {    //实时更新段的长度 
    				maxn = thisn;
    			}
    			if ( str[i+1] != str[i] ) { // 当后面的与前面的不同时输出之前的 
    				thisn = 0;
    				if ( maxn == 1 ) {
    					printf("%c", str[i]);
    				}
    				else {
    					printf("%d%c", maxn, str[i]);
    					maxn = 0; // 输出后将最大长度再次赋值为0 
    				}
    			}
    		}
    		
    		printf("
    ");
    	}
    	
    	return 0;
    } 


  • 相关阅读:
    MySQL性能优化
    性能测试结果分析
    TFS使用之代码管理
    新博开通,近期将推出系列博客之测试工具篇!
    绝对受用的TFS操作指南
    2008 &amp; 2005 TFS 安装心得及安装时遇到的问题!
    测试用例如何进行评审?
    cordova H5打包APK关键几点记录
    Silverlight+wcf 结合窗体验证演示
    两道js笔试题
  • 原文地址:https://www.cnblogs.com/fayne/p/7224823.html
Copyright © 2020-2023  润新知