我在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.

我在leedcode上所刷过的题_第1张图片
题目一

2.我的解法(Js):

        我的想法是把题目所给定数组对应的value值和key值存在map中。然后接收数组,对数组中的字符串进行遍历,将字符串都替换成给定数组类的符号。所有字符串替换完成之后再进行比较,如果该字符串之前还存在和该字符串相等的字符串,那么count就不能加1,因为之前的字符串已经加过1了。反之加1


我在leedcode上所刷过的题_第2张图片
使用JS实现

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容器)


我在leedcode上所刷过的题_第3张图片

2.题目


我在leedcode上所刷过的题_第4张图片

2.我的解法:

        遍历有问题,没有好好思考楼梯问题。

        其实这题解法很简单,主要还是要思考到最后是走一步或者走两步

3.大牛的解法:


我在leedcode上所刷过的题_第5张图片



三、

1.题目


我在leedcode上所刷过的题_第6张图片

2.我的代码(超出了时间限制了)


我在leedcode上所刷过的题_第7张图片

我出现的错误:"reference binding to null pointer of type 'value_type'"

    没有判断当输入为空时怎么处理,所以新增了一行 if(length<0) return 0

3.经过林狗的细心教导后我修改了代码,记录下当前的最小值,当当前数组索引大于最小值时,记录下它们之前的差值,再进行对比,保留最大差值


我在leedcode上所刷过的题_第8张图片

你可能感兴趣的:(我在leedcode上所刷过的题)