b*********n 发帖数: 1258 | 1 需要写现场可以运行的代码
求思路
用什么数据结构 | l******s 发帖数: 3045 | 2 具体一些,解析的结果是怎样要求的?
【在 b*********n 的大作中提到】 : 需要写现场可以运行的代码 : 求思路 : 用什么数据结构
| a********5 发帖数: 1631 | 3 应该是要实现一个简单的抽象语法树parser吧,parser本身可以用状态机来做 | b*********n 发帖数: 1258 | 4 比如说有下面的数据 和 sql query, 让输出结果
String[][] data = {
{ "id", "gender", "age", "job" },
{ "1", "male", "10", "yes" },
{ "2", "female", "20", "no" },
{ "3", "male", "30", "yes" }, };
String query = "select id, gender, age from table where gender = male";
【在 l******s 的大作中提到】 : 具体一些,解析的结果是怎样要求的?
| l******s 发帖数: 3045 | 5 首先,Table一定是一个List,那么需要示意地定义几个类或接口IObject1,
IObject2准备被from 选用。
选用一个Hashmap,mapping From的Table名字字符串和List的变量。
假设有
IList list = new List();
list.Add(...);...
map[table] = list;
从易到难,单表查询且没有Group By开始,写一个解析器存入三个字符组string[]
select,string[] from,KeyValuePair[] where
三个参数的函数
public IList> Retrieve(string[] select, string[] from,
KeyValuePair[] where){
...
//在.Net中Linq可以简化为
return map[from[0]].Select(select[0], select[1], ...).Where(where.Key =
where.Value);
}
然后加上多表Join,这里用DI Container好一些,因为表的数量不定,Group By比较麻
烦,相信面试时候这两样也就说说,代码是写不完的。
【在 b*********n 的大作中提到】 : 比如说有下面的数据 和 sql query, 让输出结果 : String[][] data = { : { "id", "gender", "age", "job" }, : { "1", "male", "10", "yes" }, : { "2", "female", "20", "no" }, : { "3", "male", "30", "yes" }, }; : String query = "select id, gender, age from table where gender = male";
| b*********n 发帖数: 1258 | 6 需要写现场可以运行的代码
求思路
用什么数据结构
比如说有下面的数据 和 sql query, 让输出结果
String[][] data = {
{ "id", "gender", "age", "job" },
{ "1", "male", "10", "yes" },
{ "2", "female", "20", "no" },
{ "3", "male", "30", "yes" }, };
String query = "select id, gender, age from table where gender = male"; | l******s 发帖数: 3045 | 7 具体一些,解析的结果是怎样要求的?
【在 b*********n 的大作中提到】 : 需要写现场可以运行的代码 : 求思路 : 用什么数据结构 : 比如说有下面的数据 和 sql query, 让输出结果 : String[][] data = { : { "id", "gender", "age", "job" }, : { "1", "male", "10", "yes" }, : { "2", "female", "20", "no" }, : { "3", "male", "30", "yes" }, }; : String query = "select id, gender, age from table where gender = male";
| a********5 发帖数: 1631 | 8 应该是要实现一个简单的抽象语法树parser吧,parser本身可以用状态机来做 | b*********n 发帖数: 1258 | 9 比如说有下面的数据 和 sql query, 让输出结果
String[][] data = {
{ "id", "gender", "age", "job" },
{ "1", "male", "10", "yes" },
{ "2", "female", "20", "no" },
{ "3", "male", "30", "yes" }, };
String query = "select id, gender, age from table where gender = male";
【在 l******s 的大作中提到】 : 具体一些,解析的结果是怎样要求的?
| l******s 发帖数: 3045 | 10 首先,Table一定是一个List,那么需要示意地定义几个类或接口IObject1,
IObject2准备被from 选用。
选用一个Hashmap,mapping From的Table名字字符串和List的变量。
假设有
IList list = new List();
list.Add(...);...
map[table] = list;
从易到难,单表查询且没有Group By开始,写一个解析器存入三个字符组string[]
select,string[] from,KeyValuePair[] where
三个参数的函数
public IList> Retrieve(string[] select, string[] from,
KeyValuePair[] where){
...
//在.Net中Linq可以简化为
return map[from[0]].Select(select[0], select[1], ...).Where(where.Key =
where.Value);
}
然后加上多表Join,这里用DI Container好一些,因为表的数量不定,Group By比较麻
烦,相信面试时候这两样也就说说,代码是写不完的。
【在 b*********n 的大作中提到】 : 比如说有下面的数据 和 sql query, 让输出结果 : String[][] data = { : { "id", "gender", "age", "job" }, : { "1", "male", "10", "yes" }, : { "2", "female", "20", "no" }, : { "3", "male", "30", "yes" }, }; : String query = "select id, gender, age from table where gender = male";
| l**h 发帖数: 893 | 11 这道题可不可以用直接用regex去match?
【在 b*********n 的大作中提到】 : 需要写现场可以运行的代码 : 求思路 : 用什么数据结构 : 比如说有下面的数据 和 sql query, 让输出结果 : String[][] data = { : { "id", "gender", "age", "job" }, : { "1", "male", "10", "yes" }, : { "2", "female", "20", "no" }, : { "3", "male", "30", "yes" }, }; : String query = "select id, gender, age from table where gender = male";
| l**h 发帖数: 893 | 12 如果只是最基本的Select from where,好像不难,比如
String query = "select id, gender, age from table where gender = male";
只要parse出来Target (id, gender, age) 和condition (gender='male').
就和Data的第一行比较,拿到index, 然后顺序scanData二维数组,
打印出结果。
【在 b*********n 的大作中提到】 : 需要写现场可以运行的代码 : 求思路 : 用什么数据结构 : 比如说有下面的数据 和 sql query, 让输出结果 : String[][] data = { : { "id", "gender", "age", "job" }, : { "1", "male", "10", "yes" }, : { "2", "female", "20", "no" }, : { "3", "male", "30", "yes" }, }; : String query = "select id, gender, age from table where gender = male";
|
|