由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 实现一个parser可以解析给定的几种sql语句,怎么做?
相关主题
一道电面题,分享下, 这个题应该用哪几个data structure?请教一个新鲜算法面试题
Java programming questionfacebook一题
一周多了。。。等的太不淡定了。。。 说两个面经吧文件可以随机读哪一行吗?
请教一个C++的题目话说今天面了一老印
MS onsite面经问一道JAVA面试题目
groupon电面面经白板面试还是Python比较实用
请教一道Google面试题大家帮我看看这个程序哪里有问题啊!!
Amazon 电面问一道题的优化以及时间复杂度
相关话题的讨论汇总
话题: string话题: gender话题: select话题: male话题: table
进入JobHunting版参与讨论
1 (共1页)
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";

1 (共1页)
进入JobHunting版参与讨论
相关主题
问一道题的优化以及时间复杂度MS onsite面经
share int2roman and roman2int java versiongroupon电面面经
leetcode上最搞笑的是这题请教一道Google面试题
Apple电面面经+请问去过onsite的同学会考很多objective c么?Amazon 电面
一道电面题,分享下, 这个题应该用哪几个data structure?请教一个新鲜算法面试题
Java programming questionfacebook一题
一周多了。。。等的太不淡定了。。。 说两个面经吧文件可以随机读哪一行吗?
请教一个C++的题目话说今天面了一老印
相关话题的讨论汇总
话题: string话题: gender话题: select话题: male话题: table