我在leedcode上所刷过的题
一.
1.题目
Now, given a list of words, each word can be written as a concatenation of the Morse code of each letter. For example, "cab" can be written as "-.-.-....-", (which is the concatenation "-.-." + "-..." + ".-"). We'll call such a concatenation, the transformation of a word.
题目一2.我的解法(Js):
我的想法是把题目所给定数组对应的value值和key值存在map中。然后接收数组,对数组中的字符串进行遍历,将字符串都替换成给定数组类的符号。所有字符串替换完成之后再进行比较,如果该字符串之前还存在和该字符串相等的字符串,那么count就不能加1,因为之前的字符串已经加过1了。反之加1
3.我在写这个代码时所出现的错误:
a.一开始map的定义就出错了,要记住var usemap=new Map([[' ',' '],[' ',' ']])
b.忘记了Array可以用push增加值,还傻傻的定义了一个变量循环赋值
c.在flag这个状态和chatstring这个字符串改变后并没有及时改回初值
d.js赋初值不能直接null!!!!不然会一起输出来!!!!
4.来看一下讨论区里其他人的思路
用数组k保存题目给定的数据,因为数据是按照a,b,c,d..排序,所以如果要找gik这个单词对应的字符,只需要遍历gik这个单词,不断地让一个字符串+=k[gik遍历得到的字母-'a']。那么怎么判断里面有一样字符的呢?用HashSet(只存储不重复对象)(c++可以使用set容器)
二
2.题目
2.我的解法:
遍历有问题,没有好好思考楼梯问题。
其实这题解法很简单,主要还是要思考到最后是走一步或者走两步
3.大牛的解法:
三、
1.题目
2.我的代码(超出了时间限制了)
我出现的错误:"reference binding to null pointer of type 'value_type'"
没有判断当输入为空时怎么处理,所以新增了一行 if(length<0) return 0
3.经过林狗的细心教导后我修改了代码,记录下当前的最小值,当当前数组索引大于最小值时,记录下它们之前的差值,再进行对比,保留最大差值