00:00
好好,我们来再来给大家写一个,比如说我现在有个30。好代码就出问题了。那为什么我加一个30就会出错呢?我们先看这个结果。好,当有多位数的时候,我们发现这个结果跟我们想的就不太一样了,大家看30加上一个24减一个二才等于22。这个不对,这个不对的原因同学们都应该清楚的知道,因为我们在处理的时候,直接就把这个三处理,把零分开处理的,对吧。那同学们想,这个我们怎么来解决呢?好,我现在直接来说这个解决方法啊,我就写代码了,时间关系,我就我写一个keep。Number是一个字符串。是一个字符串,就说我这个是用来干什么呢,在扫描时。在进行扫描时。
01:03
保存,保存上次。到这个差。素也保持上次的素质差。哦,素质差。然后呢,并进行拼接,并进行拼接。因为我不知道你将来要记住好代码在哪里处理,主要是在这里,在入数站的时候要进行一个处理,哪里呢,就这。你是不是我们入宿站只在这儿有一个动作呀?说这段你要进行一个处理,怎么办呢?我们现在要这么去写。就是处理多位数。多位数的一个逻辑。那你看我怎么写啊,同学们,我上来给我先干一件事。这个能理解什么意思吗?就是我先把它拼一下。那拼一下过后。我们是不是马上入战呢,不一定,因为有可能他后面还是一个书,对不对。
02:04
是吧,所以说现在我们要做这么一个动作。做一个什么动作呢,我们判断。判断CH的下一个。下一个字符。是不是是不是数字。如果是数字,我们就先不要入站,如果不是数字的,我们就入站,就说这样子的啊,如果如果是数字则。继续下次扫描,进行下次扫描。如果是字符,如果是操作符呢,诶如果是操作符就什么呢,就直接。直接入账了,因为这个时候你操作符如果下一个它下一个是操作符,你肯定就代表这个多位数已经被你扫描完毕了嘛。啊,就直接入战。好,现在老师要写一段代码了,我们先来。
03:04
判断下一个,注意下一个字符呢。不要让这个index真正移动。就相当于说向前探一位注意听这句话啊,看下一个数字是看。这有点。的下一个字符时,字符时不要真正的移动,真正的移动这个index,为什么?因为你这个只是它只是干什么,只是探测一下。就是探测一下。好,那探测一下,我们就可以让他写了啊,同学们,我要开始这样写,大家看能不能理解,就是我用这个offer。点is oper,我这样写,大家看能不能理解,就是点sub。Begin什么呢?Index加一,Index加二。
04:00
OK,那也就是说这个地方呢,我取出来一个对不对,取出来一个过后呢,我把它写一个零。那有同学能理解是什么意思吗?我,我先说这句话什么意思。这句话是不是相当于探了一下index,下一位还有没有?对吧。那看下一位还有没有,那有些同学老师假设你在探的时候刚好很郁闷,他已经到了这个占顶,你这一探不就是会约键吗?的确这样还有个风险呢。这样探索这样探其实是有风险的,因为假如你,呃,你刚好这个数多位数是在最后。你还有个风险,因此我们在看的时候呢,最好先判断一下他这个是不是已经到了最后了啊,那所以说我们这个逻辑呢,应该这样子,还要还要做一个处理啊,我们先我们先把这个写完再再说处理事来不着急,就说如果如果他是。
05:01
如果他是一个操作符。如果他是一个操作服,就直接入站先说啊,如果是操作服。四超。操作。啊,操作服就入账,这个大家看看能不能理解。因为下一个已经操作服,你肯定就把它入占了嘛,只是我这有有个风险,假设index刚好到最后,你再看一下就会有越界的可能。那待会我们再补补这个逻辑嘛,那现在呢,我们就把它放进去了,就是number。点。怎么样啊,Push push谁?这次push的应该是谁?是吧,然后这个to。这个图特,那这个代码就没有意义了,就可以离开了,因为字符串转成一个int,它不会转成那个阿斯科玛了。没有问题,同时还要做一件特别重要的事情,把这个keep要怎么样。晴空。
06:00
如果你不清空,你会发现这个结果更恐怖。反正这个地方你会发现你的脑袋就已经不够用了啊,这个代码还不算难的,就是呃,以后大家有机会呢,呃就会就你们现在写的很多东西都是基于操作性的,比如这个配一个什么集群呢,其实那些东西只要大家记住韩老师一句话叫只要你觉得简单,别人也会觉得简单。因为你是人,人家也是人对吧,啊你你你比较聪明多,所以你这个东西你要觉得很简单,或者说你你照到一个视频就能做出来的,那人家也能照这个视频做出来,但它价值不会特别高,只有什么呢,就说。你能看懂,别人看不懂啊,那你就厉害了,或者说你能做别人做不了,好,我把它清空一下,这点很重要,清空。好清空,那清空完了过后,好,那下面这个如果是字,如果是操作符,我们就这样这样做的,但是还有一个逻辑,我们要处理。这样这样子的话,有一个漏洞,就是如果将来这个音代词到边界,所以说还有问题,那下面呢,我们还要在这个基础上做一个判断啊,如果已经到。
07:12
什么。如果已经到。这个。他说如果这个这个CH,如果CH已经是什么呀,已经是这个expression的最后一个。Expression。Expression的。最后一个什么呀,如果它就是最后一个字符了,那你就不用不用再去看了,再看你要出问题的,那怎么判断呢?诶怎么知道。直到这个CH已经是最后一个了。是不是你还是要靠这个长度来看,就是如果这个index它已经等于expression点。
08:00
减一了,我问大家。如果X等于0.1,至少至少这地方已经证明我们当前扫描这个CH是不是已经最后一个了?那这个时候你就不用不用再去玩其他这个花样了,是不是就直接把它入战了就完了。其实这个时候呢,是清空都可以不要。为什么?因为你不会再扫描了,只是在A的情况下,大家看到没有。在A的情况下,我才去做这个工作。能理解了吧?OK。那这样就没有风险了吗?因为我我这个地方在做这个事情的时候,我已经保证应该是不是最后一个,所以我在看的时候呢,绝对不会出现数组越界的这种可能性。好同学们,那现在老师把这个代码写完了过后,当然你把它清一下也无所谓啊,清一下把那整体把这个清空了,放在最后也可以啊,也可以啊,算了吧,我就不清了,因为已经到最后一个,再清也没有意义啊,已经到最后一个了,还清他干啥?
09:00
好,同学们,那现在呢,我们再来看30加四乘以六减二这个结果对还是不对啊,OK,运行一下。他我们运行完了过后呢,我们发现这个结果对不对,诶等于52了,对不对呀,52是正确的啊,30加上42吗?再减一个二,这个没问题,当然说老师我多来几位一样的,你不管多少位都行,对吧,你只要是整数都没问题,比如说你写四位数对不对呢?诶已然已然是正确的对不对,肯定是正确的,这个没毛病。对吧,可以的,好,那这个行了,我们再来看下面这个可不可以呢?诶下面我们再把这个多位的。来进行一个处理,看这个结果对不对。好,我再来测一下,诶把这个有多位运算的,来看看这个结果运行。跑起来。好,这个结果我们看一下,这个结果呢,等于18对不对呀。啊,我们这样子,我们也不去算了,好吧,我们直接叫它粘贴出来,用它写一遍18是正确的。
10:06
但是这面我们还有很多地方需要同学们去优化的,我说一下啊,这边代码呢,还没有完全写完,但是我也就说已经把这个站充分利用了一下,大家也看到,就是咱们要去写一些,就是有些带些算法的东西呢,还是比较麻烦的,我给大家布置一点这个思考题,同学们有时间呢就去想,没有时间你也就放一放。我布置几个思考题啊,就是哪几个呢,就说。考虑考虑,对这个表达式加入这个小括号就可以了,比如说打个比方吧,我们原先这个地方算是这样结构,那我加个小括号,你们能不能把它给做出来。啊,就是你,你肯定要把这个小国当成一种。当做一个那个当做一个值表达式来进行这个运算啊,那这个呢,同学们有时间就去做,没有时间就算了,为什么我这么说呢?因为毕竟同学们以后呢,这个呃,这个算法这个东西啊,它是在。
11:09
就是你在这个工作的时候,他会突然灵光一闪。来做,但是你们毕竟是学大数据的,对吧,学大数据你们现在学的都是呃呃,那个什么项目啊,那种框架的居多,那么这些呢,小的这个技巧性的东西呢,你有时间去考虑,这个是主要是开阔你的什么呀,开阔你的一个开阔一个思路。就是,其实说白了这是真正的编程。这是这是真正的编程,你们学大数据的那个可能是基于项目那个更高一个级别的啊,编程其实更多的是在解决实际问题。好,那同学们,那关于这个呃,站我就先给大家讲到这儿那。我们把这段代码给大家整理一下,好吧,那么包括我们的思路,呃,包括我们的代码,我们就给它统一的整理一下,好的,那我们把它整个复制到这边来。
12:03
这个需求对不对,需求是这样子的,就是啊,编写编写程序啊,把这个需求也给他拿过来。就是这么一个思路。啊,计算这个表达式的,那么我们的代码呢,代码实现。代码实现,我给大家放到这儿来。好,我把代码呢整体啊各位。插入到一个表格里面去。呃,代码。啊,写了200多行。放这来。好,然后呢,这边是呃,这个代码实现的思路代码。代码实现。实现的一个思路分析。啊,我一直在强调这个思路,包括同学们以后参加工作以后呢,也是思路的,思路也是蛮重要的,那么这个分析的思路呢,我是在这给大家进行了一个剖析。
13:04
好的,这是一个思路图。好,那我截取一段视频。
我来说两句