取出两个有序数组里面的公共元素 java,在Java中对字符串进行排序并提取两个String数组的公共元素...

I was asked to write down a Java function sharedStr that by given 2 sorted arrays of Strings, returns the number of Strings that appear in both of the arrays.

The solution for this code must be linear, which means that I must go through each array only once. Otherwise, I could just compare each String in the first array to all the Strings in the other array.

For example the following call to sharedStr

sharedStr({"Call","me","Ishmael"},{"Call","me","Jonha"});

must return 2. I would like your help to understand what does it mean sorted arrays that contain Strings? There isn't any special description of the way the arrays have been sorted. What is the basic ordinary sorting of Strings?

How does one compare between two Strings anyway? If I try to do so, I get a compiler error. (I'm using Eclipse. I noticed that chars can be compared automatically).

解决方案

int x = 0;

int i= 0;

int j = 0;

while(i != list1.length && j != list2.length){

int v = list1[i].compareTo(list2[j]);

if (v == 0){

x++;i++;j++;

}else if (v < 0){

i++;

} else {

j++;

}

}

return x;

This makes the straightforward assumption that the strings are sorted using String.compareTo which would make sense.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值