avatar
我的故事(2)--- 生产# NextGeneration - 我爱宝宝
b*y
1
一直不明白这个solution的transition matrix 是怎么来的
bool isNumber(const char *s) {
int mat[11][7] = {0 ,0 ,0 ,0 ,0 ,0 ,0, // false
0 ,2 ,3 ,0 ,1 ,4 ,0, // 1
0 ,2 ,5 ,6 ,9 ,0 ,10,// 2
0 ,5 ,0 ,0 ,0 ,0 ,0, // 3
0 ,2 ,3 ,0 ,0 ,0 ,0, // 4
0 ,5 ,0 ,6 ,9 ,0 ,10,// 5
0 ,7 ,0 ,0 ,0 ,8 ,0, // 6
0 ,7 ,0 ,0 ,9 ,0 ,10,// 7
0 ,7 ,0 ,0 ,0 ,0 ,0, // 8
0 ,0 ,0 ,0 ,9 ,0 ,10,// 9
10,10,10,10,10,10,10 // 10
};
int i = 0;
int stat = 1;
while(s[i] != 0) {
int type = 0;
if(s[i] >= '0' && s[i] <= '9')
type = 1;
else if(s[i] == '.')
type = 2;
else if(s[i] == 'e')
type = 3;
else if(s[i] == ' ')
type = 4;
else if(s[i] == '+' || s[i] == '-')
type = 5;
if(stat == 0)
return false;
stat = mat[stat][type];
i++;
}
stat = mat[stat][6];
if(stat == 10)
return true;
else
return false;
}
avatar
h*e
2
其实我生产的过程很短,两个push的时间加起来也没有1个小时。
主要还是讲讲我家老二的过程吧。
我大概在预产期前1个礼拜的时候开始休息的,因为听到很有说老二会早生,而且生起
来很快,我上班的地方离家很远,所以很害怕上班的时候生出来。但是那个时候一点都
没有开,医生说孩子都没有怎么下来。但是小孩子已经很大了,他那个时候保守估计说
有8磅多。
我生老大的时候是无知者无畏,生了大的就生了,但是这个有些怕了,所以对医生一直
要求催,甚至剖。但是医生笑笑,总说对我很有信心,无论多大,都可以自己生,说我
的宫颈弹性非常好。
over due了一个礼拜,我又要求催,医生同意了,第二天晚上12点,我和ld就整理的东
西,准备了迎接老二。晚上到了医院,做了初步检查,还是一指未开,小孩子离宫口也
是不近。上了药,就是等待了。来了另外一个ob,是我的ob的朋友,还有一个当时的值
班医生,都是来看我的演出的。
我当时没有宫缩,没有阵痛,和他们谈了一会,他们说孩子大小其实很多时候和父亲很
有关系,其中一个医生说有两个女儿,以后女儿谈朋友的时候,一定要问问男方生下来
多大,太大可不好,另外一个医生说,现在所有孕妇
avatar
p*e
3
state machine
avatar
s*x
5
我的想法, 极其简单, I could not find anything wrong, I found most of the
solutions are difficult to write and easy to make mistakes.
you can finish the following in less than 5 minutes and most importantly
hard to make mistakes.
bool isValide(char *string)
{
char *p = string;
if (p == NULL) return false;
p += skipWhiteSpaces(p);
p += skipSigns(p);
int n1 = skipDigits(p);
p+= n1;
if (*p == '.') p++;

int n2 = skipDigits(p);
if (n1 == 0 && n2 == 0) return false;

if (*p == 'e' || *p == 'E')
{
p++;
p += skipSigns(p);
int n3 = skipDigits(p);
if (n3 == 0) return false;
}
p += skipWhiteSpaces(p);
return *p == '\0';
}
those helper functions are easy to understand and write.
avatar
w*e
6
稍微更正你的代码几个简单错误之后,你的代码是我见过此题最简洁的,而且通过了
judge
多谢了

【在 s**x 的大作中提到】
: 我的想法, 极其简单, I could not find anything wrong, I found most of the
: solutions are difficult to write and easy to make mistakes.
: you can finish the following in less than 5 minutes and most importantly
: hard to make mistakes.
: bool isValide(char *string)
: {
: char *p = string;
: if (p == NULL) return false;
: p += skipWhiteSpaces(p);
: p += skipSigns(p);

avatar
s*x
7
多谢验证,俺自己还真没用过online judge.

【在 w*******e 的大作中提到】
: 稍微更正你的代码几个简单错误之后,你的代码是我见过此题最简洁的,而且通过了
: judge
: 多谢了

avatar
l*b
8
悲剧呀,学state machine写的,又被拿来当反面教材了。。。

【在 b**********y 的大作中提到】
: 一直不明白这个solution的transition matrix 是怎么来的
: bool isNumber(const char *s) {
: int mat[11][7] = {0 ,0 ,0 ,0 ,0 ,0 ,0, // false
: 0 ,2 ,3 ,0 ,1 ,4 ,0, // 1
: 0 ,2 ,5 ,6 ,9 ,0 ,10,// 2
: 0 ,5 ,0 ,0 ,0 ,0 ,0, // 3
: 0 ,2 ,3 ,0 ,0 ,0 ,0, // 4
: 0 ,5 ,0 ,6 ,9 ,0 ,10,// 5
: 0 ,7 ,0 ,0 ,0 ,8 ,0, // 6
: 0 ,7 ,0 ,0 ,9 ,0 ,10,// 7

avatar
f*x
9



【在 s**x 的大作中提到】
: 我的想法, 极其简单, I could not find anything wrong, I found most of the
: solutions are difficult to write and easy to make mistakes.
: you can finish the following in less than 5 minutes and most importantly
: hard to make mistakes.
: bool isValide(char *string)
: {
: char *p = string;
: if (p == NULL) return false;
: p += skipWhiteSpaces(p);
: p += skipSigns(p);

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。