杭电ACM 2025:查找最大元素

原创作品 转载请注明出处http://blog.csdn.net/always2015/article/details/45508527

杭电ACM 2025:查找最大元素_第1张图片

这一道题刚开始看起来是有点麻烦的。但是做下去就会发现比想象的简单一点,我在程序中用到了一个在字符串中插入另一个字符串函数insert();关于insert的用法下面通过一个例子就可以了解:

#include  
#include  
using std::cout; 
using std::endl; 
using std::string; 
int main(void){ 
    string str1="We can insert a string"; 
    string str2="a str into "; 
         //在字符串指定位置前面插入指定字符串 
    cout <14,str2)<//在字符串指定位置前面插入指定字符串的子串(从指定索引开始的指定个数的字符) 
    cout <14,str2,2,9)<//插入指定字符串的前n个字符 
    cout <14,"test hello",5)<//插入n个相同字符到字符串中 
    cout <14,6,'*')<//替换指定索引开始的指定长度的子串 
    cout <3,3,"may")<//用给定字符串的指定子串来进行替换 
    //如下,实际上使用的是could来进行替换 
           cout <3,3,"can could",4,5)<//使用给定字符串的前n个字符来进行替换:can 
    cout <3,5,"can could",3)<//使用指定个数的重复字符来进行替换 
    cout <3,3,5,'*')<string word="We"; 
    size_t index=str1.find(word); 
    if(index!=string::npos) 
    //删除指定索引开始的指定长度的字符 
    cout <return 0; 

}

很简单吧,具体含义在注释里面有。下面我就给出我的AC代码,注释在代码里写的很详细,特别是需要注意的地方。

#include 
#include
using namespace std;

int main(void)
{
    string input_str,insert_str="(max)";
    int lenght;
    char max_char;
    while(cin>>input_str)
    {
        lenght=input_str.size();
        max_char=input_str[0];
        //求出字符串中的最大字符
        for(int i=1; iif(input_str[i]>max_char)
            {
                max_char=input_str[i];
            }
        }

        /*注意:在这里j的范围必须写成j
        for(int j=0; jif(input_str[j]==max_char)
            {
                input_str.insert(j+1,insert_str);
                //插入的(max)占据了5个位置,所以j在扫描时候直接跳过
                j+=5;
            }
        }

        cout << input_str << endl;
    }

    return 0;
}

你可能感兴趣的:(acm,杭电,【ACM刷题】)