b***m 发帖数: 5987 | 1 做过的就不要说了,有些朋友估计想练手。
1、用stack实现queue;
2、实现Perl可变类型变量。 |
K*******i 发帖数: 399 | 2 1. 两个stack? 同理有两个queue实现stack,都是常见题
2. Perl, Python神马的都不懂 |
Q*******e 发帖数: 939 | 3 int
queue_is_empty(struct queue_head *q) {
return (stack_is_empty(q->stackA) &&
stack_is_empty(q->stackB));
}
void
enqueue(struct queue_head *q, int value)
{
stack_push(&q->stackB, value);
}
int
dequeue(struct queue_head *q) {
if(queue_is_empty(q)) {
printf("Error: Empty queue\n");
abort();
}
if (stack_is_empty(q->stackA)) {
while(!stack_is_empty(q->stackB)) {
int tmp = stack_pop(&q->stackB);
stack_push(&q->stackA, tmp);
}
}
return stack_pop(&q->stackA);
} |
b***m 发帖数: 5987 | 4 第一题还是比较简单的,大家来讨论一下第二题的思路。 |
p*****2 发帖数: 21240 | 5
第二题什么意思呀
【在 b***m 的大作中提到】 : 第一题还是比较简单的,大家来讨论一下第二题的思路。
|
p*****2 发帖数: 21240 | 6
第二题什么意思才
【在 b***m 的大作中提到】 : 第一题还是比较简单的,大家来讨论一下第二题的思路。
|
b***m 发帖数: 5987 | 7
Perl的变量是灵活的,不用声明类型,比如如下声明:
my Val = "I love you";
Val += Val;
print Val;
Val = 100;
Val *= 100;
print Val;
输出结果是
I love youI love you
10000
如何在内存中实现和管理。
【在 p*****2 的大作中提到】 : : 第二题什么意思才
|
p*****2 发帖数: 21240 | 8
字符串就是字符串吧?操作之后生成一个新的字符串。
【在 b***m 的大作中提到】 : : Perl的变量是灵活的,不用声明类型,比如如下声明: : my Val = "I love you"; : Val += Val; : print Val; : Val = 100; : Val *= 100; : print Val; : 输出结果是 : I love youI love you
|
h****n 发帖数: 1093 | 9 第二题没见过。。首先要判断传进来的是神马类型的吧,然后要对不同的类型重载运算
符
大牛你是咋回答的呢呵呵 |
b***m 发帖数: 5987 | 10 我是知道Perl是如何实现的,所以这个问题我就先不说答案了,大家讨论讨论呗,没有
绝对的对错,合理就行。 |
f*****e 发帖数: 2992 | 11 全部都用字符串,遇到需要数字的运算符字符串变成数字,遇到需要字符串的运算符变
成字符串。
【在 b***m 的大作中提到】 : 我是知道Perl是如何实现的,所以这个问题我就先不说答案了,大家讨论讨论呗,没有 : 绝对的对错,合理就行。
|
p*****2 发帖数: 21240 | 12
既然都用字符串为什么还要变字符串呢?
感觉很有可能数字就是用字符串来表示的。因为python数字没有范围。
【在 f*****e 的大作中提到】 : 全部都用字符串,遇到需要数字的运算符字符串变成数字,遇到需要字符串的运算符变 : 成字符串。
|
b***m 发帖数: 5987 | 13 再写一段Perl代码,大家就知道更多实现细节了:
my val = "I love you".
val = int(val) + 100;
print val, "\n";
val = "100I love you";
val = int(val) + 100;
print val, "\n";
val .= "100";
print val;
输出结果:
100
200
200100
上面第一个帖子写错了一个地方。 |
h****n 发帖数: 1093 | 14 看来还是把所有的输入用字符串来做的,遇到数值就转换成数字做运算,数值后面的字
符直接截断了 |