首页 > ACM题库 > 九度OJ > 九度-1121-首字母大写[解题代码]
2013
12-12

九度-1121-首字母大写[解题代码]

题目来源:2008年北京大学图形实验室计算机研究生机试真题

题目描述:

对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。
在字符串中,单词之间通过空白符分隔,空白符包括:空格(‘ ‘)、制表符(‘\t’)、回车符(‘\r’)、换行符(‘\n’)。

输入:

输入一行:待处理的字符串(长度小于100)。

输出:

可能有多组测试数据,对于每组数据,
输出一行:转换后的字符串。

样例输入:
if so, you already have a google account. you can sign in on the right.
样例输出:
If So, You Already Have A Google Account. You Can Sign In On The Right.

cpp 代码如下:
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
char str[100];
int main() {
	while( gets(str) != NULL){
		int len = strlen(str);
		if(str[0] >= 97 && str[0] <= 122){
							str[0] -= 32;
						}
		for(int i=1; i<len; i++){
			if(str[i] == ' ' || str[i] == '\t' || str[i]=='\r' || str[i] == '\n'){
				if(str[i+1] >= 97 && str[i+1] <= 122){
					str[i+1] -= 32;
				}
			}

		}
		printf("%s\n",str);
	}

//cout << 'z' - 0;
	return 0;
}
/**************************************************************
	Problem: 1121
	User: coder
	Language: C++
	Result: Accepted
	Time:0 ms
	Memory:1520 kb
****************************************************************/


  1. “再把所有不和该节点相邻的节点着相同的颜色”,程序中没有进行不和该节点相邻的其他节点是否相邻进行判断。再说求出来的也不一样是颜色数最少的

  2. if(j){
    int ans=a ;
    for(int x=j-1;x>=0;x–){
    if(!a ) break;
    ans=min(ans,a );
    sum+=ans;
    }
    }
    求解释,,dp的思路是什么呢?