大概得等AHI8小智什么时候才能冠军CoM才能,继续收看wwWAHI8CoM里面的内容

&p&我转载一篇我自己以前的原创回答、&/p&&p&&b&不定期更新!&/b&&/p&&p&股票这种东西如果无法了解全面&b&千万不要玩!千万不要玩!千万不要玩!重要的事情说三遍!&/b&(因为每一个你不知道的事情都可能让你亏钱!只会一招半式或者很老道但没有完全了解一样亏!因为股市千变万化必须对,大盘,行业,股票,新闻,年报数据,技术,人性,政策,仓位!全部的融会贯通才可以每天随机应变做到百战不殆!)&/p&&p&&b&你可能觉得亏没事,但是你不知道股市亏起来有多么可怕!&/b&&/p&&p&&b&新手一定不要拿太多钱玩,只能用你闲钱的20%!等你把该摔的跤都摔过了,改亏的都亏过了才可以真正赚钱!不能急!不然绝对让你悲痛欲绝,倾家荡产!(忠言逆耳!)&/b&&/p&&p&&br&&/p&&p&&b&
我个人是这样一路学习成长过来的!&/b&&/p&&p&首先我是学金融的,但是不是证券专业,因为也是不太好的学校所以在学校自己的专业几乎没有学、&/p&&p&每天都是拿着手机看股票,看新闻,看年报,看书,看视频、本人高中开始喜欢股票投资因为读高中时间不多,人也不太懂事,自己瞎研究了几年开始真正实战,实战的时候已经高考完比较有时间,我最开始只拿了10000块钱,到大学毕业也就刚刚赚付个首付,没有赚到什么大钱。开始的第一年非常艰难,&b&记得第一次买的股票就亏了3个跌停,亏了3000多,30%我永远不会忘记!&/b&&/p&&p&&b&
以前在大学每天只做这些事
&/b&&/p&&p&一,每天起来看新闻,政策新闻,行业新闻,个股新闻、国内外都看、 &/p&&p&&br&&/p&&p&二,看股评,听各种股评,只要是稍微有点名气的我都听过,并且把他们说的记录下来,&b&自己去验证,对比&/b&,以前没有分辨能力,需要很长时间才能判断出他们谁是骗子,谁是真的有本事,我就把他们说的记下了,以后慢慢看,最后就发现就5个不到股评有点良心会说真话,其他的不一定没有能力,可能是不给你说真话、并且股评身后也是复杂的利益,我们要理解他们,&b&现在总结想学炒股要靠自己、&/b&最近一年不再看股评、
&/p&&p&&br&&/p&&p&三,研究技术,这个花了我最多时间差不多2年、只要是我看见网上有关股票的书就下载,收集了5年左右我也不记得我下载了多少本,反正65个G!看到最后只要一开头就知道内容、没事就看,各种看,&b&然后在实战中实践,做笔记,做摘抄!我的笔记,厚厚几本&/b&!各种技术都不要遗漏,一开始学我是来者不拒的,之后开始挑最准的,最上手的几个左右技术一直用到现在,技术没有好坏,单个技术也没有用,要综合起来分析,几个技术都发出买入信号,长线,短线都是买入信号才是最准的、(&b&均线,k线,ene,kdj,macd,ris,量能,boll、expma这几个指标是最好的!)以后一个一个见解并且解读如何配合运用!&/b&&/p&&p&&br&&/p&&p&四,就是结合实战,每次不管记录什么,学习什么一定会通常长时间的实战和真实的盘面来验证!&b&因为市场永远是对的!这个是重点!任何不适用实战的方法都是错误的!&/b&&/p&&p&&br&&/p&&p&五,&b&打基础,练基本功,加深股票池!这项工作就像扎马步一样、非常重要,看似繁琐但是非练不可!&/b&就是去大概了解所有的上市公司!你可能认为3200多家上市公司怎么可能全部了解!不是让你一天去了解,是循序渐进!我几乎每星期简单过一遍,半年详细理一遍,一年全部看一遍、&/p&&p&具体的应该这样去看,&/p&&p&1,哪个哪个版块里面的牛股大概有哪些,这个是要背的,净利润1个亿以上的哪些,5个亿的哪些,10个亿的哪些、国企的哪些,有名的名营企业哪些、这些都是非常重要的、这就是你的股票池,&b&越深在实战中越快的反应!&/b&&/p&&p&2,做到第一点以后应该是政策一出消息,个股一出消息,新闻一出消息就可以在大脑里面想到哪些股票是利好,哪些是利空、至少大概的印象要有、然后你心里要有一个&b&估值天平&/b&!什么是估值天平,也就是经验和基本功了,看见一只股票,你可以很快的看出这个股票的估值是贵了还是低估了,从哪方面看出呢?行业,股价,市值,股本,国企还是名企,老板的背景,净利润,业绩,技术形态,这些都是基本功,&b&你如果大概都了解3200个股票的这些基本信息就会马上反应出这个股票相似的股票大概在多少钱&/b&,&b&多少市值!&/b&&/p&&p&3,做到三面两点以后你的股票池肯定非常深,最后就是及时的更新概念股里面的股票,哪些股票重组成为了新的概念,&b&哪些股票业绩变动了,哪些股票股本扩大了,新股增加的都要认真分析,你对市场的了解和股票池的深度不会欺骗你&/b&,以后网上,公众号就骗不了你了,&b&因为你看的够多,经验够丰富!这些基本功是加快速度的,是提高准确度的,我个人认为很有必要去做这些事情、&/b&&/p&&p&&br&&/p&&p&六,最后就是分类管理,你的大脑不可能可以像电脑,你必须把调整好的技术,收集的股票都分好类,所以一台电脑非常重要!如下图是我的分析页面、&/p&&figure&&img src=&https://pic3.zhimg.com/v2-edf1eaadf4e_b.png& data-caption=&& data-size=&normal& data-rawwidth=&1038& data-rawheight=&764& class=&origin_image zh-lightbox-thumb& width=&1038& data-original=&https://pic3.zhimg.com/v2-edf1eaadf4e_r.png&&&/figure&&p&&br&&/p&&p&七,心态的修炼,上面的那些都是基本功,只要你真的喜欢总有一天可以学会,可以做到,但不一定赚钱,因为还有一个心态,你能找到牛股不代表可以拿的住,你赚到钱不代表卖的到价,你偶尔失误亏了钱不代表你可以及时止损!&b&这些都是心态!心态的修炼很广!&/b&&/p&&p&1,我的心态修炼是看其他书,心理学,中国的古籍,&b&各种各样的书!都有用、&/b&心态是很全面的系统,吃喝玩乐都会有用的,旅游,美食,聊天都可能是启发!因为投资就是很广很全面的事情!&b&可以说投资能力代表这你这个人整体的能力,投资是艺术!而不是单单只是炒股的能力、&/b&&/p&&p&2,锻炼身体,早睡早起,身体不好,头脑不清楚肯定做不好决策的!我一直保持健身的习惯,平时吃喝玩乐都会去,&b&因为我需要一个放松健康的大脑!投资是一辈子的事情!&/b&附上一张小照片、&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-0297bfaa25c00dd4c3d543cf3c69697a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&964& data-rawheight=&1280& class=&origin_image zh-lightbox-thumb& width=&964& data-original=&https://pic3.zhimg.com/v2-0297bfaa25c00dd4c3d543cf3c69697a_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&八,&b&最后就是融会贯通了,把上面8点综合起来就是最重要的!&/b&最强的武功就是集百家之长然后自成一派!投资也一样!像水一样包容,&b&像太极一样黑白相融、这就是我认为的投资最高境界!我是一直这样修炼过来的&/b&,自由职业者就是这样艰难!不过做自己喜欢的事情很幸福!&/p&&p&&br&&/p&&p&&b&&i&日更新&/i&&/b&&/p&&p&&b&短线要诀&/b&&/p&&p&&b&想真正赚到钱就一定要尊重市场!&/b&选对热点,选对题材,选对的意思就是选有空间的股票,不要看见涨就追,题材通常在重大的新闻里面,在重大的政策支持里面,你对题材敏感而且基本功很好就可以做好短线!抓住了最热的题材,选好了基本面,技术面最好的股票,最后一步就是看大盘了,这一点非常重要!大盘不好的时候放弃一切机会!任何短线的基础就是要在大盘好的时候玩短线!至少大盘有周线级别的上涨机会!(如果你做到了我上面说的基本功,就可以很轻松的找到好股票,并且看懂大盘怎么样。操作起来其实不难,主要是心态,大盘不好的时候能不能忍住不买是分辨是不是一个顶级高手的关键!)&/p&&p&&b&短线=大盘好+题材热+股票有上涨空间+短线技术正好买点、(越前面的因素越重要!)&/b&&/p&&p&&br&&/p&&p&&b&长线要诀&/b&&/p&&p&长线很简单,如果你完全做到了我上面说的基本功那长线就是捡钱!因为长线就是买一个好公司!在一个好公司便宜的时候买!然后等待这个好公司慢慢涨!长线简单并且赚钱概率几乎稳赚!&/p&&p&&b&长线=大盘位置很低+好公司估值很低&/b&&/p&&p&&br&&/p&&p&&b&最最重要的一点来了,就是投资组合、再厉害的高手不管玩短线,中线,长线如果不会控制仓位并且知道分散投资的话都很难长期赚钱!&/b&一定不要满仓!越稳的股票仓位越高!但是一只股票最多20%左右的仓位!大部分时间手上至少要有35%以上的现金!并且要时刻做空仓的准备!小态!&b&真正的高手就是很难亏钱的人!稳,稳到极点!把所有可能亏钱的地方都在买之前想好!这样基本上就是稳赚!心里没有想法就去努力练基本功!&/b&&/p&&p&&br&&/p&&p&&b&&i&日更新&/i&&/b&&/p&&p&说说怎么灵活使用软件、&b&其实不需要花钱买软件的,都是骗人的!&/b&&/p&&p&只需要一个普通的软件+百度就可以了、新闻百度就好,百度百不到的你肯定也买不到的、别被骗!软件用起来其实很方便的如下图&/p&&p&这是我用的通达信最新版的,&b&免费的、&/b&里面右侧有很详细的股票基本面资料!选起股来非常快!能用的都有!&b&别相信什么神秘的数据!这些年报的数据就是最有用的!&/b&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-8b387ea3399f2dfa88d964df9e08d6a2_b.png& data-caption=&& data-size=&normal& data-rawwidth=&953& data-rawheight=&158& class=&origin_image zh-lightbox-thumb& width=&953& data-original=&https://pic3.zhimg.com/v2-8b387ea3399f2dfa88d964df9e08d6a2_r.png&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-822c4c4acc6b573bf79feaa_b.png& data-caption=&& data-size=&normal& data-rawwidth=&1593& data-rawheight=&223& class=&origin_image zh-lightbox-thumb& width=&1593& data-original=&https://pic3.zhimg.com/v2-822c4c4acc6b573bf79feaa_r.png&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-cbef5c3ff3eb1151a5fecaa2_b.png& data-caption=&& data-size=&normal& data-rawwidth=&1221& data-rawheight=&813& class=&origin_image zh-lightbox-thumb& width=&1221& data-original=&https://pic3.zhimg.com/v2-cbef5c3ff3eb1151a5fecaa2_r.png&&&/figure&&p&&br&&/p&&p&股票一个一个比起来很麻烦的!你可以很轻松的使用软件来看板块,看数据,马上就可以选出数据最好的股票!现在是科技时代一定要会使用股票软件!希望大家没事都好好研究研究最基本的炒股软件!最基本的就足够用了!想知道更多的消息和新闻直接百度就可以了、想问问题就直接&b&百度&/b&&/p&&p&&b&深交所互动易、
深圳的股票问这个、代码002 000 300的就是、&/b&&/p&&p&&b&上证e互动、
上海的股票问这个、代码600的就是、&/b&&/p&&p&&b&里面可以最近问公司高管一下人家可以回答的问题!一般会在1个月以内回答!不回答问题的公司不是优秀的好公司!&/b&&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&&i&日更新&/i&&/b&、&/p&&p&&b&今天聊一点接地气的话题、&/b&&/p&&p&&b&很多人问我为什么我的股票跌了?我的股票怎么不涨?我的股票怎么比别人的差?我买之前还不错怎么买了以后就跌了?&/b&&/p&&p&&b&这些问题其实都可以统一反30问:&/b&&/p&&p&&b&1,你的股票是否在历史高位?&/b&&/p&&p&&b&2,你的股票是否是听朋友介绍或者是看新闻买的?&/b&&/p&&p&&b&3,
你是不是因为涨的好才买的?&/b&&/p&&p&&b&4,你买这个股票之前是否已经看好了至少有日线级别的行情才买的?&/b&&/p&&p&&b&5,你买的股票有没有认真看清楚这个股票的盈利能力和公司背景再买的?&/b&&/p&&p&&b&6,你买的股票所处的行情有没有优势?&/b&&/p&&p&&b&7,你买的股票是否行业很特殊?&/b&&/p&&p&&b&8,你买的股票做的产品别的公司能不能复制?&/b&&/p&&p&&b&9,你买的股票国家是否很大力支持其发展?&/b&&/p&&p&&b&10,你买的股票控股股东能力怎么样?&/b&&/p&&p&&b&11,你买的股票年报都看了一遍?&/b&&/p&&p&&b&12,你买的股票今年有什么创新?&/b&&/p&&p&&b&13,你买的股票在他所属的板块里面估值是否贵?&/b&&/p&&p&&b&14,你买的股票股价是否低?&/b&&/p&&p&&b&15,你买的股票净利润有没有突破1个亿?&/b&&/p&&p&&b&16,你买的股票市盈率是否超过50倍?&/b&&/p&&p&&b&17,你买的股票每年分红是否有20%?&/b&&/p&&p&&b&18,你买的股票有没有机构,基金,社保看上过?&/b&&/p&&p&&b&19,你买的股票业绩有没有15%以上的增长?&/b&&/p&&p&&b&20,你买的股票总股本在板块里面是不是比较小的?&/b&&/p&&p&&b&21,你买时候考虑过大盘是否是牛市?&/b&&/p&&p&&b&22,你买的时候考虑过这个股票庄家的成本?&/b&&/p&&p&&b&23,你买的时候你用所有的技术指标去认真看了一遍是否已经做好底了?&/b&&/p&&p&&b&24,你买的时候是不是头脑发热的就满仓?&/b&&/p&&p&&b&25,你买的时候想过会亏?想过几种亏的情况?又想了怎么样应对?&/b&&/p&&p&&b&26,你买的时候想好了止损?&/b&&/p&&p&&b&27,你买的时候想到了大盘还能涨多少?你买的时候想到了这个股票是否有潜在的利空?&/b&&/p&&p&&b&28,你买的时候是否考虑到大概还有多少涨幅?&/b&&/p&&p&&b&29,你买的时候是否是在3000多家上市公司里面选出最适合操作的前100个股票?&/b&&/p&&p&&b&30,你是否花了时间去选股票,去学习如何选股票?&/b&&/p&&p&&b&请大家不要把买股票当游戏&/b&,就算是玩LOL在选英雄的时候也要考虑自己选的英雄是否搭配的阵容?是否克制对面的阵容?这个英雄是否熟练?对面的英雄对线起来是否顺手?&/p&&p&如果大家买股票的态度就是随意道听途说的一买我只能说你真有钱!来&b&这里做慈善、不亏你亏谁?&/b&玩LOL你随便乱选英雄的人肯定是永远上不了钻石的!更不用说上王者了、&/p&&p&就拿我最喜欢吃来说,你要做出一道很好吃的菜,肯定要先计划好菜谱,然后第二天早起去菜市场买菜,然后洗菜,然后一步一步来烹饪,&b&通过一次又一次的调整味道来达到最好&/b&,对不对?&/p&&p&你要破案,是不是要先收集所有证据,然后慢慢来推理?&b&去揣摩犯罪心理、去分析动机、&/b&&/p&&p&想去旅游也不可能直接去了,肯定也是要计划好资金,查好天气,风土人情,什么好玩,研究地图,把要带的东西一样一样都整理好,最后带个本子,&b&一路记录心情,记录哪些下次要注意的东西、&/b&&/p&&p&什么事情肯定要有计划,有心得,&b&有反思才会有进步的!&/b&怎么买股票就如此大气?如此简单的看见就买了呢?我见过很多平时买件50块钱不到的衣服和人家老板还价半天,买10多万的股票眼睛都不眨一下!&/p&&p&这些都是错误的炒股方法!一定要去多思考,多总结,每次失败都自己去想一想为什么亏了、不要在一个地方摔两次!任何事情都一样、这个市场都是狼,&b&因为羊多!你是想被吃,还是想吃别人,自己多想想、你不成长人家会成长,你不总结人家会总结、&/b&请大家对投资的态度认真一点!&/p&&p&&b&炒股一样,做人一样,做什么事情都一样、都要认真、真的、什么事情认真就可以做好、&/b&&/p&&p&又想赚钱,又不想麻烦去学?又想吃美食,又不想去研究厨艺?又想看更远的世界,又不想出门?又想上钻石,又不想练?又想谈恋爱,又不想付出?又想学富五车,又懒得看书?这些都是懒!人生多么美好,&b&世界多么缤纷!唯有懒毁一切!&/b&&/p&&p&&b&还是再说一遍!基本功很重要!&/b&&/p&&p&整个股市的估值体系的认知&/p&&p&政策的把握&/p&&p&技术面短线长线的配合&/p&&p&每个行业未来发展的判断&/p&&p&每个股票的了解程度&/p&&p&每个版块里面股票的大概情况&/p&&p&你自己的性格&/p&&p&对市场其他投资者的揣摩&/p&&p&人性的理解和把握&/p&&p&整个市场3200多家上市公司总体的经济数据对应的股价,估值、&/p&&p&这些都是基本功、都是通过学习,实战,记录,反思来提高的、&/p&&p&&b&基本功就是你的股票池深度!你到底什么水平这些基本功就是综合能力!&/b&&/p&&p&&b&不要妄想偷懒,你的每一个短板都是会漏水的!都是会亏钱的!所以一定要都理解透!&/b&&/p&&p&&b&大盘+政策+技术+估值+个股+组合投资+对自身性格的理解=综合能力!=稳赢!&/b&&/p&&p&&b&基本功扎实了,实战起来就是行云流水,&/b&很快就可以知道买什么股票,知道时候什么卖,知道如果计划失败如何应对、大盘大概涨多久,股票大概涨多久,什么时候空仓,怎样合理的布局,心里都会很快有想法!心里没有想法就是基本功不到位!没有别的原因!到了战场上蒙了就是出战前没有准备好、&b&出征不做准备这不是一个好的将军会做的事情!你的士兵也会因你而亡!&/b&&/p&&p&&b&基本功是什么?基本功就是把关于股票的一切碎片都学会,实战是什么?实战就是把这些碎片融会贯通形成自己的投资风格,把这些数据,技术,消息都有赋予自己独特的理解!&/b&&/p&&p&&b&多少人相信只靠一个技术,一个数据,一个指标就可以赚钱、真是天真!&/b&&/p&&p&&b&最强的武功就是把天下所有武功学会,然后按照自己性格创造出最适合自己的最强武功,并赋予新的名字!这就是只属于你的盈利模式!投资也一样,先去学,然后去创造自己的方法!&/b&&/p&&p&&b&每一根k线,每一条均线,每一个数据,每一个消息,每一个成交量,每一个指标每天都在说话!你是否有用心去聆听?是否听出来了内容?&/b&&/p&&p&&b&不在乎士兵生命的将军不是好将军,不珍惜金钱的投资者不是好投资者、&/b&&/p&&p&&b&不要说不会,不要说天赋不够,不要说麻烦,不要说难、多少人说这些话之前根本没有努力过?&/b&&/p&&p&我劝大家一句,去&b&热爱生活&/b&吧!&/p&&p&热爱生活的人会积极的面对困难,会挑战困难,会努力去体验一切!&b&等你真的花了10年很拼命的去学习过一样东西还是失败的时候再来说难,再来考虑天赋!&/b&&/p&&p&为什么你一无所有?为什么你生活无聊?为什么你工作没有激情?为什么你没有朋友?因为你什么事情都在等!什么事情都在问!什么事情都在犹豫!拜托,你对生活一副半死不活的样子还想生活给你好脸看?快醒醒吧!去快乐的生活吧!去健身!去学习!去体验一切!抱着这个心态,我相信股票不是什么难事!多上点心,一定可以学会,一定可以投资赚到钱,然后去体验这个世界的美好!&/p&&p&&b&每个人都应该为自己的快乐,幸福,自由不留余地的努力!天生我材必有用,唯有懒惰毁一生!&/b&&/p&&p&&br&&/p&&p&&b&日更新&/b&&/p&&p&今天周末,&b&&i&聊一点大家在网上普遍遇见的股市难题&/i&&/b&、&/p&&p&我们现在通过各种网络渠道,炒股软件总能看见什么一招学炒股,什么一个名字很厉害的炒股指标,一个什么必涨的形态,一个什么无敌的指标、&/p&&p&但你一开始用起来可能有一点点用,但会发现经常失效,这是因为&b&在任何不综合考虑市场和股票的前提下讲的任何技术,数据,形态都是没有保障的!&/b&&/p&&p&这个数据好用,这个技术好用,这个指标好用都是要用对时间,用对股票,用对市场的!&/p&&p&炒股是投资,投资是赚钱,不是亏钱、这是一个严谨的事情,不是什么一招两招就可以真正一直赚钱的、不相信的可以去试着按照网络上流传的来操作看看,&b&你亏了就知道我的苦口婆心了、&/b&&/p&&p&&b&所以大家不要想着急功近利,不要去相信网上的什么绝招,你没有基本功绝对用不了!&/b&&/p&&p&金融市场水深鱼多,人家什么老师就是抓住了你这个想暴富又懒的心理所以骗你很容易!牛市的时候随便蒙一个都涨,你还以为是老师教的好!叫你去追涨停板,第二天怎么也有一点点涨幅,你肯定因为老师真厉害!还有个别搞笑的老师推荐次新股,连续拉涨停板说是他说的准!&b&其实不就是骗你单纯,骗你完全不懂股票?&/b&&/p&&p&&b&我来知乎说,是因为知乎不主打金融,我不会动到谁的蛋糕,我说真话不会影响别人利益!多少股评,老师就靠每天微博,公众号骗骗你就赚成百上千万,你没有赚到钱还在叫老师辛苦了!真的搞笑、&/b&&/p&&p&我热爱这个行业,所以我想让更多热爱这个行业的人真正找到然后一条路、如果想急功近利的人就别看了,没有意义、我不会推荐股票,我也不会去说一些误导别人的话、你听不到的,&b&想听这些话去自己去百度,去公众号、&/b&&/p&&p&&b&在我眼里没有必涨绝招,没有必涨股票,没有必涨形态,没有必涨指标、我眼里就没有必涨两个字,任何操作都一定要综合考虑,都要走一步看一步,每一天行情都不一样,公司也不一样、行情都不一样、有什么必涨?&/b&&/p&&p&&b&不同的政策,不同的股票,不同的行情,不同的业绩,不同的估值用的技术,仓位,心态都不一样,我怎么说方法?每一天都不一样,就是要灵活运用!&/b&所以我叫你们去打基础,基础打好了就可以灵活运用了&b&,自己灵活搭配技术来玩才可以赚钱,才可以稳定赚钱!&/b&&/p&&p&真正基本功好的舞者可以随意根据场地,心情来随机创作、画家到了一定程度就可以心情一到马上画一幅自己的灵魂之作,&b&这就是艺术!&/b&基本功+想法+随机应变、投资在我看来就是艺术、预测不准的,&b&每一个股票都有可塑性,每一段行情都有独特性。过去了下一次又不同了,所以教人技术不设前提就是在误导,教人基本功,引导人家去思考,去灵活运用才是真正的在教人家赚钱、&/b&&/p&&p&&b&你可能会说很累,赚钱哪个行业不累?轻松,不存在的、任何行业做到巅峰都是艺术,都是十年一剑基本功的即兴发挥!人家轻松完美的背后是汗水,是坚持!360行谁告诉你轻松赚钱的人都是想骗你钱的人!&/b&&/p&&p&&br&&/p&&p&有些时候不是太想把这些技术,技术,数据,指标,形态,政策一个一个挑出来讲,真的太多了,一天一个可以讲至少几年不重复,而且还要详细的讲解怎么搭配。怎么灵活使用,每一个小数据单独都是一篇论文啊!不知道知乎限不限制字数!我这个人太懒,不是很愿意去说这些基本功的事情,希望尽量大家自己去学,我本人喜欢讲举一反三的投资哲理,性格问题&b&,看吧,以后有机会就慢慢的讲吧,一个一个来,我还年轻,90后,讲到90岁应该就讲完了,哈哈!想学的快真的要大家自己去看书了和实战了、&/b&&/p&&p&&br&&/p&&p&&b&&i&我在帮助的是真正喜欢投资股票的人,不是在帮助投机分子!想赚快钱的我真的无能为力、请去找各种老师,大v,股神吧!&/i&&/b&&/p&&p&&br&&/p&&p&&b&更新日21:30&/b&&/p&&p&&b&以后更新内容按照大家留言的来吧,按照点赞数的多少来写、如果有广告狗和抄袭狗,虽远必诛!留言处我不会回复任何推荐股票,大盘预测,赚钱的敏感问题、不良回复统一删除、&/b&&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&更新日(全部重复内容都有删减)&/b&&/p&&p&&b&
今天更新一个自由职业股者一天是如何度过、&/b&&/p&&p&早上的时候最重要的事情就是看最新的新闻、有没有非常重要的新闻,然后复盘,大概对今天的行情做一个预测、&/p&&p&9.15开盘,开始看自己的自选股、&/p&&p&9.30正式开盘,开始不断切换指数,自选股,板块股来看、一般指数看4个,999999上证指数,399001深圳主板,399005中小板,399006创业板、开盘的时候主要观察5分钟,15分钟,30分钟,60分钟,90分钟,120分钟线、因为这些是短线的重点、自选股到了该卖该买的时候看情况操作,或者空仓,&b&本人习惯空仓、一般等待为主、&/b&&/p&&p&收盘以后就是复盘、看哪些自选股出现了买点,看看自己的股票大概什么时候出现卖点心里有个数,看看有什么好股票可以收入自选股,看看哪些股票不好了提出自选股、然后继续看指数,收盘以后主要看日线,周线,月线,季线,年线,2年线、心里有点长远的数、&/p&&p&每天都做好复盘的话,周末和假期的时候就不会太累、在行情不好的时候也不会很累,一般来说牛市最累,需要每天复盘但牛市几年才一次,熊市一般看看收盘就好熊市也不长,震荡市是最常见的市场,一般在震荡市里面每年行情1-2次结构性行情,每年也就几个月还比较轻松、&/p&&p&每年大概235天左右的开盘时间、&/p&&p&&b&总的来说每天的工作就是复盘,观察,等待、真正出手的机会不多、炒股不是天天去找怎么赚钱,而是想有哪些可能亏钱的地方,把亏钱的地方看清楚的就可以赚钱了,真正的高手就是要追求稳!出手就是低点!不是低点就空仓等待!股票是复利只要不亏,一点一点累积起来很快的,不能急着每天想操作!这就是滚雪球的奥秘!股市每天学习的就是看清风险,学会躲避这里面的所有风险就是赚钱开始的那一天!&/b&&/p&&p&&br&&/p&&p&&b&日更新、&/b&&/p&&p&&b&今天聊一聊最重要的估值体系、&/b&&/p&&p&&b&一个股票的价值到底由那些东西组成就是估值体系、&/b&&/p&&p&一个股票的估值不是股价而是市值、怎么说呢,一个股票就算便宜但不一定市值小比如银行股,一个股票贵不一定市值大比如很多次新股、&/p&&p&决定市值大小也就是估值的因素主要是行情热点,大盘走势,股票自身的净利润,毛利率,行业,公司背景,股东人数,业绩增长幅度,技术走势,行业壁垒、股本大小、&/p&&p&这里面最重要的就是净利润、一个股票不管其他的多么多么好,净利润低了估值是肯定低的,这一点是价值投资的关键!&/p&&p&那怎么运用呢?&/p&&p&选择净利润高而市值相对小的公司、最好市值50亿以下你们净利润高的、这样的股票一般抗风险能力较高,至少比同样50亿市值里面净利润低的高的多!&/p&&p&净利润是价值投资里面最重要的指标!大家选股的时候一定要注意!必须放在第一的位置!&/p&&p&&b&日更新&/b&&/p&&p&&b&首先补充上文,上文讲了最重要的是净利润和市值的匹配,也就是所谓的市盈率、现在加一个,一个好股票每年净利润增长必须要有25%以上!每年最少5000万净利润为基础、没有满足这两个要求的都不是好股票、都是不算成长股、&/b&&/p&&p&&b&今天的更新内容是怎么选股、我上文写的其实比较详细了,但今天想更简单的写一下!&/b&&/p&&p&&b&新手选股的步骤:&/b&&/p&&p&&b&首先选在大盘跌了很久以后(至少是周线级别的调整以后)—选择好股票(小市值,净利润高成长,好行业,公积金3块钱以上,流通盘5000一下)这样选出来的股票一般可以在周线级别的行情里面获得25%以上的收益、这是一个简化了的选股方案,对于新手可以试一试、&/b&&/p&&p&&b&短线的买入和卖出时机:&/b&&/p&&p&&b&第一依旧是选择周线级别的调整之后,然后按照上面的步骤选出股票,最后从周线最低点开始算8周左右卖出!每年最少2次这种机会!每年最少50%的盈利、&/b&&/p&&p&&b&在没有跌出周线级别的行情之前不要动手,熊市其实一年就2-3次机会、但只要你认真选股,1次机会最少25%,所以就算是熊市只要你操作有序每年盈利不会低于50%的、&/b&&/p&
我转载一篇我自己以前的原创回答、不定期更新!股票这种东西如果无法了解全面千万不要玩!千万不要玩!千万不要玩!重要的事情说三遍!(因为每一个你不知道的事情都可能让你亏钱!只会一招半式或者很老道但没有完全了解一样亏!因为股市千变万化必须对,大…
&figure&&img src=&https://pic3.zhimg.com/v2-ed1e7fca76afee354f7536_b.jpg& data-rawwidth=&1242& data-rawheight=&843& class=&origin_image zh-lightbox-thumb& width=&1242& data-original=&https://pic3.zhimg.com/v2-ed1e7fca76afee354f7536_r.jpg&&&/figure&最近在 iOS 平台做一个简单的代码编辑器,最后的效果如图:&figure&&img src=&https://pic4.zhimg.com/v2-268b6cd8e0e5ef0723f2_b.jpg& data-rawwidth=&1242& data-rawheight=&2208& class=&origin_image zh-lightbox-thumb& width=&1242& data-original=&https://pic4.zhimg.com/v2-268b6cd8e0e5ef0723f2_r.jpg&&&/figure&&p&这篇文章简单总结一下技术方案和一些考虑的点。&/p&&p&&b&# 目标&/b&&/p&&p&一个可被接受的代码编辑器,需要具备下面几个基本条件:&/p&&ul&&li&&b&实时代码高亮&br&&/b&&/li&&li&&b&自动折行&br&&/b&&/li&&li&&b&自动保持缩进&br&&/b&&/li&&li&&b&自动插入花括号&br&&/b&&/li&&li&&b&方便输入符号&/b&&br&&/li&&/ul&&p&&b&# 技术方案&/b&&/p&&p&实现代码高亮,通常有以下几种技术方案可选:&/p&&ul&&li&&b&WebView contentEditable&/b&&br&&/li&&li&&b&CoreText&/b&&br&&/li&&li&&b&JavaScriptCore + TextKit&/b&&/li&&/ul&&p&其中 WebView 的方案是最简单的,但是实践下来却发现体验和要求相去甚远,例如自动折行很难实现,要知道如果是在手持设备上左右滑动,是非常不好的体验。另一方面性能上也是差强人意,其他格式化方面的需求就更难做到。&/p&&p&如果是用 CoreText/TextKit 的话,理论上可以完美达到任何文本编辑器的效果,但是这个工作量太大了,即便是有一些 CoreText 的封装,要做到这样的效果还是难以接受,如果我们并不是以做一个代码编辑器为主要任务的话,实在是没有必要的一件事情。&/p&&p&所以最后选择了类似于&a href=&https://link.zhihu.com/?target=https%3A//github.com/raspu/Highlightr& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这个项目&/a&的方案:JavaScriptCore + TextKit。&/p&&p&这个项目很聪明,他利用 JavaScriptCore 来解析一个 js 库(他用的 highlight.js),然后把生成的 HTML 转换成一个 NSAttributedString,再用这个 AttributedString 去设置 &b&UITextView&/b&。&/p&&p&由于是 UITextView 实现的,你直接拥有了自动折行的功能,不用在一行很长的时候左右移动了。&/p&&p&如果你只需要渲染一次的话,只需要转换的部分就够了,如果需要实时编辑,则需要通过 &b&NSTextStorage&/b& 的 &b&processEditing&/b& 去动态的做这个事情。Highlightr 这个项目提供了非常好的思路,但我没有直接使用它,主要是他的代码太乱了,我选择了自己实现了一份。&/p&&p&&b&# Highlighter 的核心逻辑&/b&&/p&&p&以通过 JavaScriptCore 调用 highlightJS 为例,主要要实现以下几个步骤:&br&&/p&&ul&&li&&b&解析主题 css 文件,将 css 属性转换成内设置到 NSAttributeString 里面的配置&br&&/b&&/li&&li&&b&加载 highlight.js,调用 highlight 方法将要渲染的代码转换成 HTML&br&&/b&&/li&&li&&b&遍历每个 &span&,将 HTML 转换成 NSAttributedString&br&&/b&&/li&&li&&b&实现 NSTextStorage 的 processEditing 让上述过程在编辑过程中保持实时&br&&/b&&/li&&/ul&&p&&b&# 自动保持缩进&/b&&/p&&p&移动设备上的输入成本是很高的,所以保持缩进是很重要的一件事情。保持缩进的逻辑是这样的:当用户输入一个换行符的时候,要自动添加空格(我是 2 spaces 党,不是 tab 党),方法是通过实现这个代理:&/p&&div class=&highlight&&&pre&&code class=&language-objective-c&&&span&&/span&&span class=&p&&-&/span& &span class=&p&&(&/span&&span class=&kt&&BOOL&/span&&span class=&p&&)&/span&&span class=&nf&&shouldChangeTextInRange:&/span&&span class=&p&&(&/span&&span class=&n&&NSRange&/span&&span class=&p&&)&/span&&span class=&nv&&range&/span& &span class=&nf&&replacementText:&/span&&span class=&p&&(&/span&&span class=&bp&&NSString&/span& &span class=&o&&*&/span&&span class=&p&&)&/span&&span class=&nv&&text&/span& &span class=&p&&{&/span&
&span class=&k&&if&/span& &span class=&p&&([&/span&&span class=&n&&text&/span& &span class=&nl&&isEqualToString&/span&&span class=&p&&:&/span&&span class=&s&&@&&/span&&span class=&se&&\n&/span&&span class=&s&&&&/span&&span class=&p&&])&/span& &span class=&p&&{&/span&
&span class=&p&&[&/span&&span class=&nb&&self&/span& &span class=&n&&reindent&/span&&span class=&p&&];&/span&
&span class=&k&&return&/span& &span class=&nb&&NO&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&span class=&k&&return&/span& &span class=&nb&&YES&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&检测到用户输入换行符的时候,做一次 &b&reindent&/b&,reindent 的逻辑很简单,从 selectedRange 往前找空格数和 tab 数,直到碰到换行符,看起来大概是这样:&/p&&div class=&highlight&&&pre&&code class=&language-objective-c&&&span&&/span&&span class=&kt&&int&/span& &span class=&n&&spaceZero&/span& &span class=&o&&=&/span& &span class=&n&&bracket&/span& &span class=&o&&?&/span& &span class=&mi&&2&/span& &span class=&o&&:&/span& &span class=&mi&&0&/span&&span class=&p&&;&/span&
&span class=&kt&&int&/span& &span class=&n&&spaces&/span& &span class=&o&&=&/span& &span class=&n&&spaceZero&/span&&span class=&p&&;&/span&
&span class=&kt&&int&/span& &span class=&n&&tabZero&/span& &span class=&o&&=&/span& &span class=&n&&bracket&/span& &span class=&o&&?&/span& &span class=&mi&&1&/span& &span class=&o&&:&/span& &span class=&mi&&0&/span&&span class=&p&&;&/span&
&span class=&kt&&int&/span& &span class=&n&&tabs&/span& &span class=&o&&=&/span& &span class=&n&&tabZero&/span&&span class=&p&&;&/span&
&span class=&k&&for&/span& &span class=&p&&(&/span&&span class=&kt&&int&/span& &span class=&n&&i&/span&&span class=&o&&=&/span&&span class=&n&&location&/span&&span class=&o&&-&/span&&span class=&mi&&1&/span&&span class=&p&&;&/span& &span class=&n&&i&/span&&span class=&o&&&=&/span&&span class=&mi&&0&/span&&span class=&p&&;&/span& &span class=&o&&--&/span&&span class=&n&&i&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&kt&&unichar&/span& &span class=&n&&ch&/span& &span class=&o&&=&/span& &span class=&p&&[&/span&&span class=&nb&&self&/span&&span class=&p&&.&/span&&span class=&n&&text&/span& &span class=&nl&&characterAtIndex&/span&&span class=&p&&:&/span&&span class=&n&&i&/span&&span class=&p&&];&/span&
&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&ch&/span& &span class=&o&&==&/span& &span class=&sc&&' '&/span&&span class=&p&&)&/span& &span class=&p&&{&/span& &span class=&c1&&// space&/span&
&span class=&o&&++&/span&&span class=&n&&spaces&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span& &span class=&k&&else&/span& &span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&ch&/span& &span class=&o&&==&/span& &span class=&sc&&'\t'&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&o&&++&/span&&span class=&n&&tabs&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span& &span class=&k&&else&/span& &span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&ch&/span& &span class=&o&&==&/span& &span class=&sc&&'\n'&/span&&span class=&p&&)&/span& &span class=&p&&{&/span& &span class=&c1&&// return&/span&
&span class=&k&&break&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span& &span class=&k&&else&/span& &span class=&p&&{&/span& &span class=&c1&&// other&/span&
&span class=&n&&spaces&/span& &span class=&o&&=&/span& &span class=&n&&spaceZero&/span&&span class=&p&&;&/span&
&span class=&n&&tabs&/span& &span class=&o&&=&/span& &span class=&n&&tabZero&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&span class=&p&&}&/span&
&span class=&kt&&BOOL&/span& &span class=&n&&spaceBased&/span& &span class=&o&&=&/span& &span class=&n&&spaces&/span& &span class=&o&&&=&/span& &span class=&mi&&2&/span&&span class=&p&&;&/span&
&span class=&bp&&NSMutableString&/span& &span class=&o&&*&/span&&span class=&n&&refill&/span&&span class=&p&&;&/span&
&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&spaceBased&/span&&span class=&p&&)&/span& &span class=&p&&{&/span& &span class=&c1&&// space based&/span&
&span class=&n&&refill&/span& &span class=&o&&=&/span& &span class=&p&&[&/span&&span class=&bp&&NSMutableString&/span& &span class=&nl&&stringWithFormat&/span&&span class=&p&&:&/span&&span class=&s&&@&&/span&&span class=&se&&\n&/span&&span class=&s&&%@&&/span&&span class=&p&&,&/span& &span class=&p&&[&/span&&span class=&bp&&NSString&/span& &span class=&nl&&stringWithSpaces&/span&&span class=&p&&:&/span&&span class=&n&&spaces&/span&&span class=&p&&]];&/span&
&span class=&p&&}&/span& &span class=&k&&else&/span& &span class=&p&&{&/span& &span class=&c1&&// tab based&/span&
&span class=&n&&refill&/span& &span class=&o&&=&/span& &span class=&p&&[&/span&&span class=&bp&&NSMutableString&/span& &span class=&nl&&stringWithFormat&/span&&span class=&p&&:&/span&&span class=&s&&@&&/span&&span class=&se&&\n&/span&&span class=&s&&%@&&/span&&span class=&p&&,&/span& &span class=&p&&[&/span&&span class=&bp&&NSString&/span& &span class=&nl&&stringWithTabs&/span&&span class=&p&&:&/span&&span class=&n&&tabs&/span&&span class=&p&&]];&/span&
&span class=&p&&}&/span&
&span class=&bp&&NSMutableString&/span& &span class=&o&&*&/span&&span class=&n&&text&/span& &span class=&o&&=&/span& &span class=&nb&&self&/span&&span class=&p&&.&/span&&span class=&n&&text&/span&&span class=&p&&.&/span&&span class=&n&&mutableCopy&/span&&span class=&p&&;&/span&
&span class=&p&&[&/span&&span class=&n&&text&/span& &span class=&nl&&insertString&/span&&span class=&p&&:&/span&&span class=&n&&refill&/span& &span class=&nl&&atIndex&/span&&span class=&p&&:&/span&&span class=&n&&selectedRange&/span&&span class=&p&&.&/span&&span class=&n&&location&/span&&span class=&p&&];&/span&
&span class=&nb&&self&/span&&span class=&p&&.&/span&&span class=&n&&text&/span& &span class=&o&&=&/span& &span class=&n&&text&/span&&span class=&p&&;&/span&
&span class=&nb&&self&/span&&span class=&p&&.&/span&&span class=&n&&selectedRange&/span& &span class=&o&&=&/span& &span class=&n&&NSMakeRange&/span&&span class=&p&&(&/span&&span class=&n&&selectedRange&/span&&span class=&p&&.&/span&&span class=&n&&location&/span& &span class=&o&&+&/span& &span class=&n&&spaces&/span& &span class=&o&&+&/span& &span class=&mi&&1&/span&&span class=&p&&,&/span& &span class=&mi&&0&/span&&span class=&p&&);&/span&
&/code&&/pre&&/div&&p&这里还顺便照顾了一下 tab 党,虽然我极不情愿这样做。&/p&&p&&b&# 自动插入花括号&/b&&/p&&p&iOS 键盘上面输入花括号对的成本很高,所以要支持自动输入花括号,具体表现是,当用户输入一个 &b&{&/b& 的时候按回车,另外一个 &b&}&/b& 要自动出现并且格式化,光标跑到正确的位置。这件事情还是在上面的 reindent 方法里面做,首先要找出换行前最后一个非空白字符是不是左花括号:&/p&&div class=&highlight&&&pre&&code class=&language-objective-c&&&span&&/span&&span class=&kt&&BOOL&/span& &span class=&n&&bracket&/span& &span class=&o&&=&/span& &span class=&nb&&NO&/span&&span class=&p&&;&/span&
&span class=&k&&for&/span& &span class=&p&&(&/span&&span class=&kt&&int&/span& &span class=&n&&i&/span&&span class=&o&&=&/span&&span class=&n&&location&/span&&span class=&o&&-&/span&&span class=&mi&&1&/span&&span class=&p&&;&/span& &span class=&n&&i&/span&&span class=&o&&&=&/span&&span class=&mi&&0&/span&&span class=&p&&;&/span& &span class=&o&&--&/span&&span class=&n&&i&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&kt&&unichar&/span& &span class=&n&&ch&/span& &span class=&o&&=&/span& &span class=&p&&[&/span&&span class=&nb&&self&/span&&span class=&p&&.&/span&&span class=&n&&text&/span& &span class=&nl&&characterAtIndex&/span&&span class=&p&&:&/span&&span class=&n&&i&/span&&span class=&p&&];&/span&
&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&ch&/span& &span class=&o&&==&/span& &span class=&sc&&'{'&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&n&&bracket&/span& &span class=&o&&=&/span& &span class=&nb&&YES&/span&&span class=&p&&;&/span&
&span class=&k&&break&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span& &span class=&k&&else&/span& &span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&ch&/span& &span class=&o&&==&/span& &span class=&sc&&' '&/span& &span class=&o&&||&/span& &span class=&n&&ch&/span& &span class=&o&&==&/span& &span class=&sc&&'\t'&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&k&&continue&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span& &span class=&k&&else&/span& &span class=&p&&{&/span&
&span class=&k&&break&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&当 bracket 为 YES 的时候,说明需要进行括号配对,这个效果有很多种实现方案,这里讲一种比 Xcode 的效果好一点点的(Xcode 可能会出现括号无法匹配的情况),就是我们真的去做一次括号匹配算法,复杂度是 &b&O(len)&/b&,len 是文本长度,括号匹配算法是一个典型的栈应用,可以在网上随意找到:&/p&&div class=&highlight&&&pre&&code class=&language-objective-c&&&span&&/span&&span class=&p&&-&/span& &span class=&p&&(&/span&&span class=&kt&&BOOL&/span&&span class=&p&&)&/span&&span class=&nf&&bracketsBlanced&/span& &span class=&p&&{&/span&
&span class=&bp&&NSMutableArray&/span& &span class=&o&&*&/span&&span class=&n&&stack&/span& &span class=&o&&=&/span& &span class=&p&&[&/span&&span class=&bp&&NSMutableArray&/span& &span class=&n&&array&/span&&span class=&p&&];&/span&
&span class=&k&&for&/span& &span class=&p&&(&/span&&span class=&kt&&int&/span& &span class=&n&&i&/span&&span class=&o&&=&/span&&span class=&mi&&0&/span&&span class=&p&&;&/span& &span class=&n&&i&/span&&span class=&o&&&&/span&&span class=&nb&&self&/span&&span class=&p&&.&/span&&span class=&n&&length&/span&&span class=&p&&;&/span& &span class=&o&&++&/span&&span class=&n&&i&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&kt&&unichar&/span& &span class=&n&&ch&/span& &span class=&o&&=&/span& &span class=&p&&[&/span&&span class=&nb&&self&/span& &span class=&nl&&characterAtIndex&/span&&span class=&p&&:&/span&&span class=&n&&i&/span&&span class=&p&&];&/span&
&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&ch&/span& &span class=&o&&==&/span& &span class=&sc&&'{'&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&p&&[&/span&&span class=&n&&stack&/span& &span class=&nl&&addObject&/span&&span class=&p&&:&/span&&span class=&l&&@(&/span&&span class=&n&&ch&/span&&span class=&l&&)&/span&&span class=&p&&];&/span&
&span class=&p&&}&/span& &span class=&k&&else&/span& &span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&ch&/span& &span class=&o&&==&/span& &span class=&sc&&'}'&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&stack&/span&&span class=&p&&.&/span&&span class=&n&&count&/span& &span class=&o&&==&/span& &span class=&mi&&0&/span&&span class=&p&&)&/span& &span class=&p&&{&/span& &span class=&c1&&// error&/span&
&span class=&k&&return&/span& &span class=&nb&&NO&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span& &span class=&k&&else&/span& &span class=&p&&{&/span&
&span class=&kt&&unichar&/span& &span class=&n&&top&/span& &span class=&o&&=&/span& &span class=&p&&[&/span&&span class=&n&&stack&/span&&span class=&p&&.&/span&&span class=&n&&lastObject&/span& &span class=&n&&charValue&/span&&span class=&p&&];&/span&
&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&top&/span& &span class=&o&&==&/span& &span class=&sc&&'{'&/span& &span class=&o&&&&&/span& &span class=&n&&ch&/span& &span class=&o&&==&/span& &span class=&sc&&'}'&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&p&&[&/span&&span class=&n&&stack&/span& &span class=&n&&removeLastObject&/span&&span class=&p&&];&/span&
&span class=&p&&}&/span& &span class=&k&&else&/span& &span class=&p&&{&/span&
&span class=&k&&return&/span& &span class=&nb&&NO&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&span class=&p&&}&/span&
&span class=&p&&}&/span&
&span class=&p&&}&/span&
&span class=&k&&return&/span& &span class=&n&&stack&/span&&span class=&p&&.&/span&&span class=&n&&count&/span& &span class=&o&&==&/span& &span class=&mi&&0&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&这里只考虑花括号的情况,当发现括号不平衡的时候,主动在上面插入右括号以保持平衡:&/p&&div class=&highlight&&&pre&&code class=&language-objective-c&&&span&&/span&&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&bracket&/span& &span class=&o&&&&&/span& &span class=&o&&!&/span&&span class=&nb&&self&/span&&span class=&p&&.&/span&&span class=&n&&text&/span&&span class=&p&&.&/span&&span class=&n&&bracketsBlanced&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&spaceBased&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&p&&[&/span&&span class=&n&&refill&/span& &span class=&nl&&appendFormat&/span&&span class=&p&&:&/span&&span class=&s&&@&&/span&&span class=&se&&\n&/span&&span class=&s&&%@}&&/span&&span class=&p&&,&/span& &span class=&p&&[&/span&&span class=&bp&&NSString&/span& &span class=&nl&&stringWithSpaces&/span&&span class=&p&&:&/span&&span class=&n&&spaces&/span& &span class=&o&&-&/span& &span class=&n&&spaceZero&/span&&span class=&p&&]];&/span&
&span class=&p&&}&/span& &span class=&k&&else&/span& &span class=&p&&{&/span&
&span class=&p&&[&/span&&span class=&n&&refill&/span& &span class=&nl&&appendFormat&/span&&span class=&p&&:&/span&&span class=&s&&@&&/span&&span class=&se&&\n&/span&&span class=&s&&%@}&&/span&&span class=&p&&,&/span& &span class=&p&&[&/span&&span class=&bp&&NSString&/span& &span class=&nl&&stringWithTabs&/span&&span class=&p&&:&/span&&span class=&n&&tabs&/span& &span class=&o&&-&/span& &span class=&n&&tabZero&/span&&span class=&p&&]];&/span&
&span class=&p&&}&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&这个 reindent 暂时就这样了,没有特别复杂的逻辑。&/p&&p&&b&# 符号面板&/b&&/p&&p&还是那个问题,移动设备上输入符号比较困难,所以要做一个方面输入符号的面板,方案很多,我的实现是使用 &b&inputAccessoryView&/b& 来实现,好处是他会自动贴紧键盘的边缘,不用去做监听键盘高度等琐事。我的 inputAccessoryView 包含了一个可上下滚动的 UIScrollView,用于三种输入:&/p&&ul&&li&&b&撤销和重做&/b&&/li&&li&&b&直接插入一个符号&/b&&/li&&li&&b&插入一对符号,例如括号和引号&/b&&/li&&/ul&&p&&b&撤销和重做&/b&,直接调用 &b&UITextView.undoManager &/b&的 &b&undo&/b& 和 &b&redo&/b& 方法,并且可以根据 &b&canUndo&/b& 和 &b&canRedo&/b& 来改变按钮是否可以点击。&/p&&p&&b&直接插入一个符号&/b&非常简单,使用:&/p&&div class=&highlight&&&pre&&code class=&language-objective-c&&&span&&/span&&span class=&p&&[&/span&&span class=&nb&&self&/span& &span class=&nl&&replaceRange&/span&&span class=&p&&:&/span&&span class=&nb&&self&/span&&span class=&p&&.&/span&&span class=&n&&selectedTextRange&/span& &span class=&nl&&withText&/span&&span class=&p&&:&/span&&span class=&n&&text&/span&&span class=&p&&];&/span&
&/code&&/pre&&/div&&p&千万别替换整个 text,这样重新渲染的速度很慢,可能造成闪烁。&/p&&p&&b&插入一对符号&/b&,在之前的基础上,再增加一个把光标往前移动一格的操作,让用户可以直接在中间输入:&br&&/p&&div class=&highlight&&&pre&&code class=&language-objective-c&&&span&&/span&&span class=&nb&&self&/span&&span class=&p&&.&/span&&span class=&n&&selectedRange&/span& &span class=&o&&=&/span& &span class=&n&&NSMakeRange&/span&&span class=&p&&(&/span&&span class=&n&&MAX&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&nb&&self&/span&&span class=&p&&.&/span&&span class=&n&&selectedRange&/span&&span class=&p&&.&/span&&span class=&n&&location&/span& &span class=&o&&-&/span& &span class=&mi&&1&/span&&span class=&p&&),&/span& &span class=&mi&&0&/span&&span class=&p&&);&/span&
&/code&&/pre&&/div&&p&&b&# 光标移动&/b&&/p&&p&这部分尚未实现,主要是针对没有 3D Touch 的一个优化。众所周知的是,有 3D Touch 的设备用力按键盘的时候,可以快速移动光标,&b&第二次用力按甚至可以选择文本,像是这样:&/b&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-a95f3bcf24292fee9f3f9f321d233e52_b.jpg& data-rawwidth=&1242& data-rawheight=&2208& class=&origin_image zh-lightbox-thumb& width=&1242& data-original=&https://pic4.zhimg.com/v2-a95f3bcf24292fee9f3f9f321d233e52_r.jpg&&&/figure&&p&非 3D Touch 的设备没有这样的福利。而编写代码的时候移动光标是非常高频的一个操作,所以很有必要在实现一个快速移动光标的功能。&/p&&p&移动光标可以通过 setSelectedRange 实现,交互上可以使用 &b&UIPanGestureRecognizer&/b&,效果会比 3D Touch 稍差,这里就不在赘述细节了。&/p&&p&&b&# 定制 highlightjs&/b&&/p&&p&由于我在写一个基于 JavaScriptCore 的 js 扩展 library,所以有必要让用户在输入我自定义的一些 &b&JSExport&/b& 的时候,也会有高亮显示。例如截图中的 &b&app&/b& 和 &b&widget&/b& 就是两个需要额外高亮的关键字。这一部分很简单,需要稍稍理解一下 highlightjs 是如何工作的。highlightjs 通过这样一组 JSON 来定义关键字和内置函数的高亮:&/p&&div class=&highlight&&&pre&&code class=&language-json&&&span&&/span&&span class=&p&&{&/span&
&span class=&nt&&&keyword&&/span&&span class=&p&&:&/span& &span class=&s2&&&in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as&&/span&&span class=&p&&,&/span&
&span class=&nt&&&literal&&/span&&span class=&p&&:&/span& &span class=&s2&&&true false null undefined NaN Infinity&&/span&&span class=&p&&,&/span&
&span class=&nt&&&built_in&&/span&&span class=&p&&:&/span& &span class=&s2&&&eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise&&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&根据你自己的需求,在需要的语言配置上面,&b&keyword&/b& 或者 &b&built_in&/b& 这里增加你要高亮的关键字即可。&/p&&p&另外就是去掉你不需要的部分,比如不需要换主题功能的话,去掉多余的 css,不需要其他语言(例如我只要 js)的话,就去掉其他语言的配置,&a href=&https://link.zhihu.com/?target=http%3A//highlightjs.org& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&highlightjs.org&/span&&span class=&invisible&&&/span&&/a& 上面可以定制,你也可以根据自己的需求把 js 和 css 文件压的更小,最后我的加起来只有 &b&11KB&/b&。&/p&&p&以上就是一个简易可用的代码编辑器的一些思考,感谢观看。&/p&&p&PS: 我的 &b&Retriever&/b& 项目已经使用一部分代码:&a href=&https://link.zhihu.com/?target=https%3A//github.com/cyanzhong/Retriever& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&cyanzhong/Retriever&/a&&/p&&p&&b&- EOF -&/b&&/p&
最近在 iOS 平台做一个简单的代码编辑器,最后的效果如图:这篇文章简单总结一下技术方案和一些考虑的点。# 目标一个可被接受的代码编辑器,需要具备下面几个基本条件:实时代码高亮 自动折行 自动保持缩进 自动插入花括号 方便输入符号 # 技术方案实现代码…
&figure&&img src=&https://pic4.zhimg.com/v2-f363fecbf_b.jpg& data-rawwidth=&1919& data-rawheight=&1056& class=&origin_image zh-lightbox-thumb& width=&1919& data-original=&https://pic4.zhimg.com/v2-f363fecbf_r.jpg&&&/figure&&p&&i&// 本文首发于&a href=&https://zhuanlan.zhihu.com/betternaming& class=&internal&&专栏 Better Naming&/a&,聊一聊编辑器与 IDE 的开发&/i&&/p&经常有朋友问我能不能把 VSCode 跑在某个他们心爱的平台上,包括并不见限于树莓派、 iPhone、iPad、Windows Phone,再或者上 Windows Store (UWP)。有点想法着实有趣,比如在 iPad Pro 上编辑代码或者 Markdown 文本。而最近 SourceGraph (就是垠神的前前...前公司) 把整个 VSCode 剪裁了放到了浏览器当中,让我对 port 到其他平台这件事情产生了兴趣,做了一点小小的尝试。&h2&&b&# VSCode 的架构&/b&&/h2&&p&移植 VSCode 的想法由于过于狂野,为了避免一些不切实际的妄想,我还是要先冷静下来回顾一下 VSCode 的架构,这样才知道哪些是可以操作的,而哪些基本属于扯淡。&/p&&p&首先按照 UI 结构来划分&/p&&ul&&li&VSCode 中的编辑区域是 &a href=&https://link.zhihu.com/?target=https%3A//github.com/Microsoft/monaco-editor& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Monaco Editor&/a&,是完全基于浏览器的 Code/Text Editor,塞到 WebView 里就好了。&/li&&li&左侧 &b&Sidebar&/b&&/li&&ul&&li&&b&File Explorer&/b& 虽然 iOS 应用操作文件的方式跟 PC 区别比较大,但是模拟一下没啥问题。SourceGraph 就把文件 API 替换成了 Rest 服务。&/li&&li&&b&Search&/b& VSCode 用 ripgrep,只能用别的方案实现了。&/li&&li&&b&Git&/b& 必须得用 iOS 平台的 Git 方案来代替。&/li&&li&&b&Debug&/b& 这个咱还是先不要在这个上面浪费脑细胞了。&/li&&li&&b&Extension&/b& VSCode 的插件都是运行在 node 上的,不过 Monaco 本身也有一套 extension api。所以把换一整套插件中心 (逃&/li&&/ul&&li&底侧 &b&Panel&/b&&/li&&ul&&li&&b&Terminal&/b& 在 iOS 上一个 Terminal Emulator 除了支持 ssh 比较有优势以外,其他干不了太多事情。&/li&&li&&b&Task/Output/Errors&/b& 这些都跟语言功能和插件功能有关,UI 肯定能 port,但是功能有待商榷。&/li&&/ul&&/ul&&p&我表示很尴尬,Sidebar 和 Panel 里的功能,要么是假设你在 PC 上 (Explorer, Terminal, ripgrep),要么就跟语言的支持有关。做起来比较无痛的只有&/p&&p&&b&&i&
Monaco Editor&/i&&/b&&/p&&p&当然还有半个 Extension Viewlet,但是整个生态得换成 Monaco 的插件体系。接着我们来看下 Language 的支持情况:&/p&&ul&&li&&b&Intellisense&/b& 无论一门语言是使用 LSP 还是别的方式,提供真的抑或是假的 Intellisense 如果要搬上 iOS,这就意味着这套代码分析的工具得运行在 iOS 上。&/li&&ul&&li&TypeScript Monaco 自带 TypeScript/JavaScript Intellisense 支持,方法是把 TypeScript 的 LSP 跑在 Web Worker 里。不过这个 LSP 只处理单个文件,放在浏览器里还是比较合理的,但是在 iOS 上,用户应该更希望能够处理本地的整个项目。需要一定的魔改。&/li&&li&Ruby、C#、Java 等可以把 VM 一起 ship 到应用里语言,难度参考楼上。&/li&&li&其他。我都不敢想。&/li&&/ul&&li&&b&Auto Complete&/b&&/li&&ul&&li&同上,如果没有 JavaScript 实现的代码分析,那么只有 word base auto complete。&/li&&/ul&&li&&b&Tokenization&/b& &/li&&ul&&li&VSCode 支持 TextMate 的 Grammar,但是这套系统的 Regex Engine 还没法 Port 到浏览器里(WebAssembly 可能能解决问题)。&/li&&li&Monaco 有一套自己的语法方案 &a href=&https://link.zhihu.com/?target=https%3A//microsoft.github.io/monaco-editor/monarch.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Monaco Editor Monarch&/a& 。现在只有 TypeScript、Markdown、JSON 和 XML 的语法,不确定社区有没有别的语言支持。当然可以把 TextMate 的 Grammar 降维到 Monarch。&/li&&/ul&&/ul&&br&&br&&h2&&b&# 我们退一步&/b&&/h2&&p&如果你没兴趣看上面的分析也没关系,结论其实很简单。现阶段,就我们已有的代码和框架,我们能够做的是&/p&&ul&&li&把 Monaco Editor 移植到 iOS 上,使用某种 WebView 方案加载。&/li&&li&用 Swift 实现一套文件管理&/li&&li&做一个 JavaScript 和 Swift 代码之间的 Bridge&/li&&li&优化 Markdown、TS/JS、HTML、JSON/XML 的书写&/li&&/ul&&p&虽然从来没有写过 iOS 应用,但我花了一个周末尝试了一下,做出了下面这个代码/文本编辑应用&/p&&p&## Markdown&/p&&a class=&video-box& href=&https://link.zhihu.com/?target=http%3A//v.youku.com/v_show/id_XMjg0NTY1MDAxMg%3D%3D.html%3Fspm%3Da2h3j.6059.1& target=&_blank& data-video-id=&& data-video-playable=&& data-name=&Monaco on iOS Markdown—在线播放—优酷网,视频高清在线观看& data-poster=&& data-lens-id=&&&
&img class=&thumbnail& src=&&&&span class=&content&&
&span class=&title&&Monaco on iOS Markdown—在线播放—优酷网,视频高清在线观看&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&http://v.youku.com/v_show/id_XMjg0NTY1MDAxMg==.html?spm=a2h3j.6059.1&/span&
&br&&p&&figure&&img src=&https://pic3.zhimg.com/v2-fcddbbcb2e6f05bab2517_b.jpg& data-rawwidth=&1156& data-rawheight=&1924& class=&origin_image zh-lightbox-thumb& width=&1156& data-original=&https://pic3.zhimg.com/v2-fcddbbcb2e6f05bab2517_r.jpg&&&/figure&## TypeScript&/p&&figure&&img src=&https://pic4.zhimg.com/v2-bdf13bd7d1f3f29d4e38aa_b.jpg& data-rawwidth=&1156& data-rawheight=&1924& class=&origin_image zh-lightbox-thumb& width=&1156& data-original=&https://pic4.zhimg.com/v2-bdf13bd7d1f3f29d4e38aa_r.jpg&&&/figure&&br&&h2&&b&# 结果只能说差强人&/b&意&/h2&&p&拿着这个简单的 demo,我比对了一下 &a href=&https://www.zhihu.com/people/ios_dev& class=&internal&&钟颖Cyan - 知乎&/a& 老师在他的文章 &a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&实现简易的代码编辑器 - 知乎专栏&/a& 中提到的一个可被接受的代码编辑器需要具备的条件&br&&/p&&ul&&li&实时代码高亮&br&&/li&&li&自动折行&br&&/li&&li&自动保持缩进&br&&/li&&li&自动插入花括号&br&&/li&&li&方便输入符号&/li&&/ul&&p&前四个都实现了,最后一个由于我使用了 WKWebView,暂时没有找到添加 &b&inputAccessoryView&/b& 的正确方法。&/p&&p&但是真正令人略有沮丧的是,Monaco Editor 并没有处理对 Touch 进行处理。大家知道,VSCode/Monaco 在编辑代码时那个跳动的光标还有文本选择(selection),都是我们手动绘制出来的,而真正的 textarea 只是一个肉眼不可见的 1px by 1px 的点。在这种情况下,Monaco 不仅无法进行长按选择文字这种操作,更别说什么 3D touch 了,2D 都没有。此外,iOS Safari 里一个 hidden 的 textarea 无法接收到 Tab/Arrows 等 event,这就意味着在你的 iPad 上暂时没法使用方向键来操控光标。&/p&&br&&h2&&b&# 下一步&/b&&/h2&&p&相比 &a href=&https://www.zhihu.com/people/ios_dev& class=&internal&&钟颖&/a& 老师在他的 iOS 代码编辑器里使用的方案则很有意思,直接 JSCore 来处理 JavaScript 操作,然后利用 TextKit 绘制原生的编辑器。也许我们可以把 Monaco 的 Rendering Layer 和 Model 完全分开,然后在 iOS 上把 Rendering Layer 换成原生 TextKit,Model 和 View Coordinates 的计算依然放在 JSCore 中。这是一个值得尝试的思路。&/p&&p&此外,由于 Monaco 的可扩展性,这样的编辑器是可以做到允许用户使用 JavaScript 去改变编辑器行为的。比如改变高亮、修改 Markdown 语法等等。简言之,这个编辑器可以有一个自己的插件中心。&/p&&p&Stay tuned.&/p&
// 本文首发于,聊一聊编辑器与 IDE 的开发经常有朋友问我能不能把 VSCode 跑在某个他们心爱的平台上,包括并不见限于树莓派、 iPhone、iPad、Windows Phone,再或者上 Windows Store (UWP)。有点想法着实有趣,比如在 iPad Pro 上编辑代…
&a href=&//link.zhihu.com/?target=http%3A//www.cppblog.com/vczh/archive//132876.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&开发自己的IDE(十),我终于搞定了智能提示了哇哈哈&/a&&br&&a href=&//link.zhihu.com/?target=http%3A//www.cppblog.com/vczh/archive//134302.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&开发自己的IDE(十一),智能提示关键步骤揭秘&/a&&br&&a href=&//link.zhihu.com/?target=http%3A//www.cppblog.com/vczh/archive//135505.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&开发自己的IDE(十二)&/a&&br&&br&几年前写的一个已经过时了的算法
几年前写的一个已经过时了的算法
&figure&&img src=&https://pic4.zhimg.com/v2-0abbf3836391_b.jpg& data-rawwidth=&500& data-rawheight=&269& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&https://pic4.zhimg.com/v2-0abbf3836391_r.jpg&&&/figure&&blockquote&专栏 | 九章算法&br&网址 | &a href=&http://link.zhihu.com/?target=http%3A//www.jiuzhang.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&http://www.jiuzhang.com&/a&&/blockquote&&br&&p&&b&Google 面试题:&/b&&br&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3Dcd778e01d617cb98cf7db%26chksm%3D887eee7cbf12f0c17ad3df3a9fe78dafdbc7e0a1b%26mpshare%3D1%26scene%3D1%26srcid%3DG4sPfgahi8ICcA%26key%3Da6c5bc40efb50dbba00ea6cae21da44faade4fba5da562ba0af7f57cefb1ebf17b2fdascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | 目标和&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3D2594fedcb9d%26chksm%3D887ec0da94a4f1ed1a1b73a59ebe3d7a0159438fed0a%26mpshare%3D1%26scene%3D1%26srcid%3DvU9IZP2w9dV4ode%26key%3D5d1ecaccec3d59c51b6c70e5c553d41ffb31fc14b5e5a0b8fcf6790fcd6722922cbfe56d2bee0%26ascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | 建邮局&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3D8ca2da6b6dc4df2ed29aa%26chksm%3D887e116ebf099878bcedfe4cfd7b8a4f6ecbd1793aad857ddb%26mpshare%3D1%26scene%3D1%26srcid%3D0317eOauZI9uwWEAIHBGEHMP%26key%3Df5df4da92f8c078daead4e5c98dadd3bdbed76eaaeebbe1f0b860baba99b829fa8a4ascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | 0与1的问题&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3D99f89bc0f5ac07f379e3a0%26chksm%3D887e10bcbf0999aade15f5565afac732cd7e4f91d8f99fab9b1d344e6b%26mpshare%3D1%26scene%3D1%26srcid%3D0317EyfY11WcQVbflb79jRIE%26key%3D1b9ee58ddbc59aedd2bb64ae9ce19dfd5d5d55f401b5bba78fb930d9cc3db90f70b5d4dc744e9ce9e0587edf8ac9a6db2e0176eca0e5dd8%26ascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | 验证UTF-8&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3D587a3b78fca6ca5069ade%26chksm%3D887ed26e0a86ccbfdfa12%26mpshare%3D1%26scene%3D1%26srcid%3D0317vkKNIJD3BsWKQRAENn4t%26key%3Db16de343c5ecfc51fcccc7cad8eb4c5aaaee304b63f6fed8d16c30dd183de7b5c67c1d01666b4cca426faabde7edf36c139b4fc4d782dafcc0c%26ascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | Data Stream Median - Python版&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3D1b875aa66c4f8f6b1c61aeaf533d1b25%26chksm%3D887e13cebf099ad8d4b6ced18b62cde139cdd33b0c203e9aba293%26mpshare%3D1%26scene%3D1%26srcid%3D0317Bs5oqBrMkSbzAMRmsTGa%26key%3Dece3f14efcaf2d654e761a24a5fa92f2bd0b4d4b97b22cbd4d0c97ec0a8609b7ccd0a54d315745bfdc7f0623bfaf63ecd684cacascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | 二进制手表&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3D5a85dd3cafcafdb21d3b17%26chksm%3D887e12babf099bace3eafd97556dedd0ec309bcae6c9%26mpshare%3D1%26scene%3D1%26srcid%3D03177dZgf4Nze5VUHepEmnwU%26key%3D5d1eca8bcac3a8ce6ece28a8aea503c5d7dadbba2aa6569ca8ebf59fdc2a8024afbascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | 硬币排成一条线3&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3De0fec0496e8%26chksm%3D887e12a8bf099bbee7b4e57ba6dab00ccb3a4fbba91ce4f325159daa%26mpshare%3D1%26scene%3D1%26srcid%3D0317pftAEvuDwsRRefuHbVJM%26key%3Db16de343c5ecfc510c76d92e3c4cfcca1f868688bea70590cac2984499bae02e91a99d2e1bf00d009f8d39d9b0f0a801bc%26ascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | 除法求值&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3D408d966116cbebchksm%3D887e9af6e9d7f6a4664bbc8fc66e679a1eb82b49ecd5e4c72ebd43b%26mpshare%3D1%26scene%3D1%26srcid%3D0317xIp3tpJMVZRnWiYc2Ghs%26key%3Da6c5bc40efb6869fc58fcedcc347aebd8e793aa3a761adb483d135ea7aecc8f2bb33c7ec671cfeea51c7529ecdf055d86b7c2c%26ascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | 不同的子序列 解法1&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3D903eaa0bdc660c497fbd%26chksm%3D887e76640fed1c3e3e7e22915bfa4f7%26mpshare%3D1%26scene%3D1%26srcid%3D0317jNtxEwDDNPbMpjTPZAdS%26key%3De10ebddae0fcc8f903c30b70f730b7ecb20bfce3d0ad24cb6dc9d5eb226bfab2a6c343366ffa7eec7bd785cfb8de2dfcee10e9%26ascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | 贪吃蛇&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3D8884cbdfaddaa6e28e8af2%26chksm%3D887e15ddbf099ccb91c10a1536aed8bf40e7a9e88cdd86f3fa74b%26mpshare%3D1%26scene%3D1%26srcid%3D03178zeFa7WCTwdEKEXUQHwJ%26key%3D32ff7e6bd1dafccf126dc9d546edad81e0a2db4e41b4ceedb4c39b0cf384cd640b4a97ba%26ascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | 数字计数&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3D9e94d5c9d76d53b052a6c6dbafd5f040%26chksm%3D887e15c9bf099cdfe22780affcdadf1bd66ac1da10fece%26mpshare%3D1%26scene%3D1%26srcid%3D0317MZTcO3q6FemAIsR3wS3H%26key%3Dfbaa823f82f97f3efb92d717f46c2814e1bbb1b818ca5fb4f9d80ac15c7ac74d48feade171acd5ba5ccc02f95afb3a02617dada4bce6b4%26ascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | Palindrome Partitioning II&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3Da51f9ce961d1c9ce429b3dfa7b8595fc%26mpshare%3D1%26scene%3D1%26srcid%3D0317HmEHrusdrmzmvzI2jdrL%26key%3D5d1eca96d067f0ce0accfd476c5ae18a2eaf1de1e5cfa10e28aef98d184c5a339faea4e2%26ascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | 最大可分子集&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3D42a0e273ce54c09a5c96%26mpshare%3D1%26scene%3D1%26srcid%3D03179elCDKEgXgCtuFukuM7x%26key%3Dece1b1dcd9d4e853ba94b62f5dfbb35cebba49cf8c76f738a6d5d5cd891cb71d359ab16f75834dfc7dfdeb105be242c7c639ac%26ascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | 轴对称&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3Dc822cf351b6f3f11f8d302%26mpshare%3D1%26scene%3D1%26srcid%3D0eoYR0dPCVsd35%26key%3Db16de343c5ecfc51c2c3f00da80ed29acbfdb3a58f37e7cbcddcf1d0dadacd2e044%26ascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | 俄罗斯套娃信封&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3Df34c42faf2bc51fbempshare%3D1%26scene%3D1%26srcid%3D0317CgRNx8bHOGUt3lVR5VEi%26key%3D32ff7e6bf913e3a244cb0e74d0aafdede8da8cc05eff06e1f3b6086519efed21bcae368f88e8338a21bbd1efd9e7a7cb2c40c2db1f6d65bd6a5aef7a17c14a6f4%26ascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | Search a 2D Matrix II&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3D0e5c5f7c7355194fdff9edf%26mpshare%3D1%26scene%3D1%26srcid%3D0317daiaAGXRNcLAdSOPYXIL%26key%3D32ff7e6b2a655f84b70d90ff6cf381b99df7cb45a1cfe4e57a88b1ec046ce2ecce8d8df6cf5c66b90e13d0ba2cfaascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | 寻找中位数&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3D4b0d6a69d074e7eb4e553%26mpshare%3D1%26scene%3D1%26srcid%3D0317M1ssm2FSyDSJsA3wJpI4%26key%3Df5df4dc28d1e041fd5aed0cd5c5c7498aaa61cb099d5f7b4d9939f0ace202c6b8b22e7e274bdebe3ed00a569cdb6ef640fdf854fa%26ascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | 路线重现&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3D%26idx%3D1%26sn%3Daac36aa41db29f687ccf%26mpshare%3D1%26scene%3D1%26srcid%3D0317cTCeSCPEFy5M0E9BDdn7%26key%3D1b9ee58ddbc59ae5d1c46cc01e2c09abdb4b1d7ace5fcda08dc44f77c9dc79d7cc98eee49ddc1b4f563d89dee10dcc5b64895d3bdae71abbef1e%26ascene%3D0%26uin%3DMTUyMzg3NjAwMA%253D%253D%26devicetype%3DiMac%2BMacBookAir7%252C1%2BOSX%2BOSX%2B10.12.3%2Bbuild%%26version%3Dnettype%3DWIFI%26fontScale%3D100%26pass_ticket%3D0AiIToHJN8yqpuqRAsA5PaaQMJr8KtvlnZ2EqkX0zx%252BEZweRvHKyF%252ByjmycpUbVn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google 面试题 | Data Stream Median - Python版&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzA5MzE4MjgyMw%3D%3D%26mid%3Didx%3D1%26sn%3D9135dbcc2e2%26mpshare%3D1%26scene%3D1%26srcid%3D0317PQbn2IwovDfYdseV6

我要回帖

更多关于 什么时候才能录入后宫 的文章

 

随机推荐