c********t 发帖数: 5706 | |
l********t 发帖数: 878 | |
p*****2 发帖数: 21240 | 3 这题只有变态的L家才会出吧?我做了一遍之后就懒得再去碰了。 |
B*******1 发帖数: 2454 | 4 嗯,我都懒得看,遇到就直接跪了。
【在 p*****2 的大作中提到】 : 这题只有变态的L家才会出吧?我做了一遍之后就懒得再去碰了。
|
c********t 发帖数: 5706 | 5 那我也就不再看了,等什么时候L onsite再说吧。
【在 p*****2 的大作中提到】 : 这题只有变态的L家才会出吧?我做了一遍之后就懒得再去碰了。
|
l**b 发帖数: 457 | 6 这题边界条件真心不多吧?就是问题很简单,写起来很想死那种,完全看coding的熟练
程度的。。。没什么意思。 |
w****a 发帖数: 710 | 7 刚做了这个题,没有调试器真心很难一次bug free.... |
P******r 发帖数: 842 | 8 多做几次就好了。思路整理清楚了,好像boundary condition也不是太多。 |
p*****2 发帖数: 21240 | 9 我写了一个,练了练。主要是输出的时候有几个小地方要注意。
def fullJustify(words:Array[String], L:Int)={
process(0)
def process(i:Int):Unit={
val j=getNext(i,0)
if(i
{
printSlice(words.slice(i,j))
process(j)
}
}
def printSlice(words:Array[String]):Unit={
if(words.size==1) {println(words(0));return}
val total=words.map(_.length()).sum
val spaces=(L-total)/(words.size-1)
val extras=(L-total)%(words.size-1)
if(extras==0)
println(words.mkString(" "*spaces))
else
{
val str1=words.slice(0,extras+1).mkString(" "*(spaces+1))
val str2=words.slice(extras+1, words.size).mkString(" "*
spaces)
println(str1+" "*spaces+str2)
}
}
def getNext(i:Int, len:Int):Int={
if(i==words.length) return i
len match{
case 0=>getNext(i+1, words(i).length())
case _=>if(len+1+words(i).length()>L) i else getNext(i+1,len
+1+words(i).length)
}
}
}
val words=Array("This", "is", "an", "example", "of", "text", "
justification.")
fullJustify(words,16) |
w****x 发帖数: 2483 | 10
这题是不是print neatly??
【在 p*****2 的大作中提到】 : 我写了一个,练了练。主要是输出的时候有几个小地方要注意。 : def fullJustify(words:Array[String], L:Int)={ : process(0) : : def process(i:Int):Unit={ : val j=getNext(i,0) : if(i: { : printSlice(words.slice(i,j)) : process(j)
|
p*****2 发帖数: 21240 | 11
什么意思? 我看了我输出的结果跟leetcode上一样呀。
【在 w****x 的大作中提到】 : : 这题是不是print neatly??
|
w****x 发帖数: 2483 | 12
是不是你去年6月份做的那个LinkedIn的面试题? 最小空格不算末尾?
【在 p*****2 的大作中提到】 : : 什么意思? 我看了我输出的结果跟leetcode上一样呀。
|
p*****2 发帖数: 21240 | 13
没有做过呀。
【在 w****x 的大作中提到】 : : 是不是你去年6月份做的那个LinkedIn的面试题? 最小空格不算末尾?
|