社区
Java SE
帖子详情
请大家帮我出点主意,一个算法的问题。
jyf7356759
2008-03-14 05:19:15
我现在把一个文件返回成一个string,这个string是每一行代码加起来的,除去所有的comments。
现在需要得到所有的if(...)的...是什么,但是可能有这种情况if(()&&()&&()),我就要找到()&&()&&()。能有高手给点算法的建议么?
...全文
87
7
打赏
收藏
请大家帮我出点主意,一个算法的问题。
我现在把一个文件返回成一个string,这个string是每一行代码加起来的,除去所有的comments。 现在需要得到所有的if(...)的...是什么,但是可能有这种情况if(()&&()&&()),我就要找到()&&()&&()。能有高手给点算法的建议么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jyf7356759
2008-03-15
打赏
举报
回复
我的意思是如果
string = "sd if ss"; 这种情况的if就不考虑在我的计算之内。
我只考虑if关键词的情况,请问有什么办法判断么?
nicholasmars
2008-03-14
打赏
举报
回复
请问单个字符判断是什么意思呢?怎么判断一个if在string里或者是关键词呢?
可用SubString或Split
jyf7356759
2008-03-14
打赏
举报
回复
请问单个字符判断是什么意思呢?怎么判断一个if在string里或者是关键词呢?
我把我的这个问题说清楚点吧。
我现在做的是找出一个代码的复杂性。这个复杂性是看有多少个if,for,switch,while循环,对于这些循环,看if(.....)这个...的表达式,有多少个&& 和 ||,如果if里面还有循环,就还按照这个算法算。
不过如果是if() return .. if () return .. 就要把这2个if的复杂性相乘。
因为代码可能不是很好的format,所以我现在把注释去掉,把所有的行放到一个string里面,但是下面的算法,感觉挺困难的,还希望高手多多帮忙!
谢谢了。
Inhibitory
2008-03-14
打赏
举报
回复
栈就是stack么?
把注释去掉,这个我已经做好了,问题就是判断if比较困难,还有种可能就是如果这个if是在一个string里,那就不能判断它是if了。
谢谢1楼先。
对,栈就是stack,你最好还是先看一下栈的基础,这个以后也用经常用得着
至于if在string里,可以单个字符单个字符的读取来判断啊,比较while, switch等都是相似的处理,而且这种处理,都是必须读取单个字符的,
可以去参考一下编译原理的词法分析器的做法,不是很难.
也可以参考编译原理的四则运算的实现方法,很多地方都是差不多的.
jyf7356759
2008-03-14
打赏
举报
回复
栈就是stack么?
把注释去掉,这个我已经做好了,问题就是判断if比较困难,还有种可能就是如果这个if是在一个string里,那就不能判断它是if了。
谢谢1楼先。
Inhibitory
2008-03-14
打赏
举报
回复
对于if的那个判断,如果if条件判断语句的语法是错的,那就不能这么简单处理,要做的东西就会很多.
Inhibitory
2008-03-14
打赏
举报
回复
可以用栈来处理这个问题:if(()&&()&&())
当读到一个(时,入栈,当读到一个)时,栈顶弹出一个(,判断,如果栈空,则说明if中的条件语句处结束,不空,则说明没结束.
我想,要把文件中的注释去掉,不用想的那么复杂,可以更简单的:
读取一行,查找// 或者/*,
1.如果找到//,则把//前面的子串加入你的结果子串中(最好用StringBuffer),继续读取下一行
2.如果找到/*,则把/*前面的子串加入你的结果子串中,从此*后开始在这一行中继续查找*/,
2.1如果找到*/,这中间的代码丢掉,又从*/的/处开始查找/*,重复第2步,直到这一行结束。
2.2如果在当前行没有找到*/,则读取下一行,继续找*/,直到找到,重复第2.1步.
FFT
算法
再学以及终于理解
FFT(Fast Fourier Transformation),中文名快速傅里叶变换,用来 加速多项式乘法 ,就是用来降低
算法
的时间复杂度的,将时间复杂度由原来的 O(n^2) 变为了O(nlog2n)。f(x)=a0,a1,a2,…,an f(x) = { a0,a1,a2,…,an } f(x)=a0,a1,a2,…,an 是这个多项式每一项的系数对于两个用系数表示的多项式我们把它们相乘设两个多项式分别为 A ( x ) , B ( x ) ,我们要枚举 A 每一位的系数与 B 每一位的系数相乘那么
Subversion API 函数和开发思路介绍
SubVersion开发信息 SubVersion是
一个
开源项目,它的财政支持来自CollabNet Inc,这是位于加州的
一个
软件公司。本项目欢迎程序员加入开发,鼓励您为它做点事情,无论是
出点
主意
,还是修正Bug,或者是提炼代码。 本章是针对那些打算直接利用这个软件的源代码
帮
助这个软件发展的人。我们会在这里公布一些该软件的内部细节,这些技术细节对你继续开发subversion有
帮
助,也可以
普通人也能看懂的大语言模型入门,不要错过哦
但首先,让我们从一些你可能经常听到的基本术语开始。什么是人工智能?•人工智能:
一个
实体,如果人类做类似的事情,人们可能会合理地称之为智能的行为。使用“智能”这个词来定义人工智能有点
问题
,但没有人能就“智能”的好定义达成一致。然而,我认为这种定义仍然相当合理。它基本上是说,如果我们观察到一些人造的东西,它做的事情既吸引人又有用,而且看起来有些非平凡,那么我们可能会称之为智能。例如,我们经常将“AI”这个术语归因于电脑游戏中的电脑控制角色。
卡特兰数:编程世界里的奇幻魔法秀
哇塞!卡特兰数呀,那简直就是编程
算法
世界里超级无敌神奇的存在,就好比一束永远都不会熄灭的超级魔法之光,那光芒亮得能闪瞎人的眼睛。它呀,就像一盏永不熄灭的魔法神灯,照亮了我们在编程这条崎岖道路上的探索之旅。嘿,有了它,那些原本看似根本无解的难题,一下子就变得像小蚂蚁一样容易被踩扁。它那神奇得让人掉下巴、幽默得让人笑出眼泪、夸张得让人惊掉大牙的特性,直接把编程这个原本枯燥得像沙漠一样的世界,变成了
一个
充满奇幻色彩的超级魔法王国。
这样走能实现读博梦想吗?
【来信】 老师,我考研一志愿TJ大学计算机,分数336,但是复试被刷,调剂到了QL大学。我现在刚开学,有考博的想法,但是不知道做什么,咨询我的导师,导师让我学习
算法
和优化方法方面的东西,我现在很迷茫,不知道我现在这样走下去能不能实现自己读博的梦想。每天在实验室自己学习,很是无助,忘老师给予解答。【回复】 没有上成TJ是个遗憾,但现在也应该不错,珍惜在校园中的时光就是了。 你的简单叙
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章