题目1199:找位置

点击打开链接

/*
	时间:2014.1.31
	目的:题目1199:找位置 http://ac.jobdu.com/problem.php?pid=1199
*/
#include <stdio.h>
#include <string.h>
int main()
{
	char str[101];
	int flag[101], i, j, k, f;
	while(gets(str))
	{
		memset(flag,0,sizeof(int)*101);
		for(i = 0;str[i];i++)
		{
			f = 0;
			if(flag[i] == 1)//如果已经标记访问过就跳过 
				continue;
			for(j = i + 1;str[j];j++)//访问指针i后的字符是否与i的字符有相同的,如果相同则输出 
			{
				if(str[j] == str[i])
				{ 
					if(f == 0)//f用来输出第一个i位置的字符 ,也表示有多个相同字符,换行时需要用 
					{
						printf("%c:%d",str[i],i);
						f = 1;//控制以后不用再输出i位置的字符 
					}
					printf(",%c:%d",str[j],j);
					flag[j] = 1;
				}	
				if(f == 1 && j == (strlen(str) - 1))//只有当有多个字符 ,且访问到最后一个字符时就换行 
					printf("\n");
			}	
			
		}
		
	}
	return 0;
}
/*
------------------
abcaaAB12ab12			思路:1. 利用两个工作指针i,j,i用来指着当前位置,j用来循环i后的字符 
a:0,a:3,a:4,a:9				  2. 
b:1,b:10
1:7,1:11
2:8,2:12
------------------
*/ 


题目1199:找位置

上一篇:公约数和公倍数


下一篇:Coedforces 387 C. George and Number