ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2.23 找位置

2019-02-23 09:48:52  阅读:206  来源: 互联网

标签:11 输出 12 10 位置 abcaaAB12ab12 2.23 include


题目描述
对给定的一个字符串,找出有重复的字符,并给出其位置,如:abcaaAB12ab12 输出:a,1;a,4;a,5;a,10,b,2;b,11,1,8;1,12, 2,9;2,13。

输入描述:
输入包括一个由字母和数字组成的字符串,其长度不超过100。

输出描述:
可能有多组测试数据,对于每组数据,
按照样例输出的格式将字符出现的位置标出。
1、下标从0开始。
2、相同的字母在一行表示出其出现过的位置。

示例1
输入

abcaaAB12ab12

输出

a:0,a:3,a:4,a:9
b:1,b:10
1:7,1:11
2:8,2:12

代码:

#include<iostream>
#include<string.h>

using namespace std;

int main(){

   char s[1005];

   while(cin>>s){

    for(int i=0;i<strlen(s);i++){

        if(s[i]=='#'){
            continue;
        }

        int len=strlen(s);
        bool ifrepeat=false;

        for(int j=i+1;j<len;j++){
            if(s[j]==s[i]){
                if(ifrepeat==false){
                    cout<<s[i]<<":"<<i;
                    ifrepeat=true;
                }
                cout<<","<<s[j]<<":"<<j;
                s[j]='#';
            }
        }

        if(ifrepeat==true){
            cout<<endl;
        }
    }
   }
}

小结:通过做这题让我认识到自己的一个问题,总是想要去投机取巧,想法设法的用巧妙的方法解决当然是好事,但是,复试的时候时间很短,所以,能用暴力的就用暴力吧!
1.大题方法就是一个一个扫描,看之后的有没有和它一样的,有的话就输出(开始自己一直怀疑,这样做会不会超时,看来我想多了)
2.关于输出格式,用一个ifrepeat标记

标签:11,输出,12,10,位置,abcaaAB12ab12,2.23,include
来源: https://blog.csdn.net/cirol1997/article/details/87888682

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有