鱼C论坛

 找回密码
 立即注册
查看: 1468|回复: 0

[技术交流] 输出相同元素所在的位置

[复制链接]
发表于 2020-2-28 13:38:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
输入包括一个由字母和数字组成的字符串,其长度不超过100。下标从0开始输出,相同的字母在一行表示出其出现过的位置。

示例:

          输入:
  1. abcaaAB12ab12
复制代码
         输出:
  1. a:0,a:3,a:4,a:9
  2. b:1,b:10
  3. 1:7,1:11
  4. 2:8,2:12
复制代码

顺序查找的思路,每个元素遍历一遍数组。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. int main()
  5. {
  6.     char str[100];
  7.     while(~scanf("%s", str))
  8.     {
  9.         int len = strlen(str);
  10.         for(int i = 0; i < len; i++)
  11.         {                        //每过一趟都将该字符以及与该字符相同的字符置为'*'
  12.             int count[100] = {0};//与当前字符相同的置1
  13.             int flag = 0;        //记录是否有重复字符,若有置1
  14.             char ch = str[i];
  15.             for(int j = i+1; j < len; j++)
  16.             {
  17.                 if(str[j] == ch)
  18.                 {
  19.                     count[j] = 1;
  20.                     count[i] = 1;
  21.                 }//有相同的字符,将ch和该字符的标记都置为1
  22.             }//一趟结束,输出
  23.             int is_first = 1;        //第一个输出的前面不打逗号,接下来的都在输出前加逗号
  24.             for(int k = 0; k < len; k++)
  25.             {
  26.                 if((count[k] == 1) && is_first && str[k] != '*')
  27.                 {
  28.                     printf("%c:%d", str[k], k);
  29.                     str[k] = '*';
  30.                     is_first = 0;
  31.                     continue;
  32.                 }
  33.                 else if((count[k] == 1) && (is_first == 0) && str[k] != '*')
  34.                 {
  35.                     printf(",%c:%d", str[k], k);
  36.                     str[k] = '*';
  37.                     continue;
  38.                 }
  39.             }
  40.             if(is_first == 0)
  41.                 printf("\n");
  42.         }
  43.     }
  44. }
复制代码
写完之后我才发现count数组没有任何作用,用is_first就可以判断是否有重复元素了。


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-4 09:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表