Redian新闻
>
面试时能多用ternary operator(? :)吗
avatar
面试时能多用ternary operator(? :)吗# JobHunting - 待字闺中
n*7
1
rt,还是说用ternary operator会降低可读性,所以尽量少用,换成if else语句。举
个例子,Check a binary tree is a binary search tree.
public boolean isBST(Node root){
return isBST(root,Integer.MIN_VALUE,Integer.MAX_VALUE);
}

public boolean isBST(Node root, int min, int max){
return (root==null)?true:((root.getValue()>=min)&&(root.getValue()<
max)&&isBST(root.left(),min,root.getValue())
&&isBST(root.right(),root.getValue(),max));
}
还是写成
public boolean isBST(Node root, int min, int max){
if(root == null){
return true;
}else{
int value = root.getValue();
boolean flag = false;
if((value>=min)&&(valuereturn (flag&&isBST(root.left(),min,value)&&isBST(root.right(),
value,max));
}
}
avatar
y*u
2
以coding style来说,最后一部分拖那么一大坨,还是不要三目运算了
短点的没问题。
avatar
z*e
3
这么长一串还是改一下吧
avatar
p*2
4
(defn isBST
([root]
(isBST root, Integer/MIN_VALUE, Integer/MAX_VALUE))
([root min max]
(if (nil? root) true
(let [val (:val root)]
(and
(>= val min)
(<= val max)
(isBST (:left root) min val)
(isBST (:right root) val max)))))
avatar
w*s
5
你这个例子当时是不用好了。
很多时候都是见仁见智看情况。
突然想到这是一个黑阿3的好借口,阿3只要用了,就说他代码可读性差,没实际经验,
阿3要是不用,就说他代码不够简洁,不熟悉编程。

【在 n******7 的大作中提到】
: rt,还是说用ternary operator会降低可读性,所以尽量少用,换成if else语句。举
: 个例子,Check a binary tree is a binary search tree.
: public boolean isBST(Node root){
: return isBST(root,Integer.MIN_VALUE,Integer.MAX_VALUE);
: }
:
: public boolean isBST(Node root, int min, int max){
: return (root==null)?true:((root.getValue()>=min)&&(root.getValue()<
: max)&&isBST(root.left(),min,root.getValue())
: &&isBST(root.right(),root.getValue(),max));

avatar
p*2
6

所以还是取消了好。

【在 w*******s 的大作中提到】
: 你这个例子当时是不用好了。
: 很多时候都是见仁见智看情况。
: 突然想到这是一个黑阿3的好借口,阿3只要用了,就说他代码可读性差,没实际经验,
: 阿3要是不用,就说他代码不够简洁,不熟悉编程。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。