本文主要是介绍做TopCoder应注意什么,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文献给那些把c当作自己主要编程语言而且有一定c++基础,想做topcoder的人
1.topcoder的题目不需要标准输入输出cin,cout,scanf,printf,所有的参数都是通过函数参数传递的形式输入
输出通过return返回。例如:
一般topcoder题都有如下的说明:
Class: Substitute
Method:getValue
Parameters:String, String
Returns:int
Method signature:
int getValue(String key, String co
在这里你需要建一个类,名字叫Substitute,类里有一个函数
int getValue(String key, String co
数据通过函数参数key和co
通过return 返回,类似输出
所以topcoder的题都可以有这样一个模板:
#include <string> #include <vector> using namespace std;class //这儿加上题目中具体的类名 { public://这儿加上题目中具体的函数 };
2.vector类
topcoder的数组是用vector这个类定义的,关于这个类常用的函数有size( ),功能像字符数组的strlen一样,获取数组的长度。
比如你要定义一个int型数组你可以:vector <int> array;
array.size(); //获取array的长度
定义一个字符数组你可以:vector <char> array;
array的默认长度是0
其他类型以此类推
还有一点需要注意,那就是用vector定义的数组可以任意长,而且可以像c的数组那样访问具体元素
比如你可以通过array[0]访问array的第一个元素,通过array[i]访问array的第i个元素
3.string类
在topcoder里字符串是通过用string定义的变量传入函数的,也是通过string定义的变量返回的
它也有一个常用函数size( ),用来获取字符串长度。
它也可以像c里的数组那样访问字符串里的每个字符。
string s = "Hello";
s[0] = 'H'; //s变成了"hello"
以下是一个具体的topcoder程序,不必理会程序具体功能,只是告诉你topcoder的程序应该是什么格式
#include <string>
#include <vector>
using namespace std;class Chooser {
public:int numSets(vector<int> a, vector<int> b, vector<int> c) {int sum = 0;for (int i = 0; i < a.size(); i++) {for (int j = 0; j < b.size(); j++) {for (int k = 0; k < c.size(); k++) {int n = a[i] + b[j] + c[k];if (n >= 60 && n <= 75) {sum++;}}}}return sum;}
};
除去模板,你会发现在函数体里的具体实现,语法和c差不多
有了上述知识,你可以像写c程序一样在类里的函数里写程序了
这篇关于做TopCoder应注意什么的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!