找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 8352|回复: 9
收起左侧

[Indeed] Indeed 电面

[复制链接]

10

主题

3

精华

340

积分

高级会员

Rank: 3Rank: 3

积分
340
发表于 10-26-2015 01:17 PM | 显示全部楼层 |阅读模式

亲!马上注册或者登录会查看更多内容!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
一个三姐, 一道老题
# _6 n# K7 Z# ^7 G: B' X% B先写reverse string,  转换成char arry 再翻转
7 r/ z; u+ E# `! m4 M第二部 string 里包含> 这种entity 要求翻转是这个作为一个整体
& Q4 M( T5 C( ~  p  W, [2 P6 lex: >abc>  }3 d, z7 I9 X( Q* B, D
我是先把整体翻转,然后用 hashmap存每一个;&对的位置,然后把这些entity再翻转,然后三姐也满意,然后让我说说每一步的复杂度和整体复杂度。# L; d$ m5 x' R3 l
[code]public class Solution {
) s0 E: i7 B! _+ v/ V' E    public String reverse(String str){
7 m! d0 _- y  ?. a  \+ x        if (str == null || str.length() == 0) {) n5 [+ G7 B4 E! E0 M
            return "";
: S3 @4 X  f  D0 y& m0 G1 s* t( B        }! I7 |0 \, G" d$ @% s
        char[] arr = str.toCharArray();
. p- x6 H, O" h8 T        swap(arr, 0, arr.length - 1);/ \' ^2 W+ v! X2 J! p( L) z: B
        HashMap<Integer, Integer> map = new HashMap<>();
" \2 V  }) d& i* _        int start = -1;
. p3 F. y8 x) H4 j/ T% a# x: J7 H        for (int i = 0 ; i < arr.length; i++) {
* A9 {  @! ~3 C- p            if (arr【i】 == ';') {
3 G$ n/ L; S( Y$ ]2 r                start = i;4 [% U4 a3 ]1 k, H) W+ j/ R- v
            }; w+ u; f; c' z5 T
            if (arr【i】 == '&' && start != -1 ){% O- K& Q5 x% t- m8 z
                map.put(start, i);
8 q( y! {3 Z0 _& S8 o. o$ A3 c                start = -1;
6 w, Z0 |* u+ ~0 u8 [+ ~! O% {            }: u& s* m5 T4 N7 P  A' u. L/ E
        }
* e; J& a* u) s, m7 \        for (int key: map.keySet()) {
) R! H. \% m6 @8 l% \2 C3 y            swap(arr, key, map.get(key));
* Y* s$ A& w# A7 e9 C        }
/ N9 v8 H( h, b/ R) I        return new String(arr);
* w# w# s9 @- \( Q+ D    }1 w2 l: [; M2 v- S4 R
, b3 \9 Q1 I5 W' `) k& V
    public void swap(char[] nums, int beg, int end){" v- w( e- b  A+ M& O
        while (beg < end) {7 W) @- T: `! d) R0 i
            char tmp = nums[beg];
$ `! s- i; L# R( e' Q            nums[beg] = nums[end];) y/ c% ~9 ^8 o4 Y
            nums[end] = tmp;! p/ z) T8 r* g1 U3 G" |6 f
            beg++;
/ `6 N* j! X# n7 k8 U/ W7 b            end--;( V3 T, h6 L7 }. C2 G! D, t" M
        }
: s8 z) j( {2 M% T    }
# Q' B( Q. M, @. h8 k5 k; U
: ?: U0 ?9 n  Z4 Y    public static void main(String[] args) {% {0 g/ }% _. U  s& R
        Solution s = new Solution();1 U4 Y& C- l1 l3 E- D0 F. h- e+ d
        System.out.println(s.reverse("123
+ D" F7 ~( d% Q% K
+ ^5 ~2 `6 H* u, |( Q8 Z补充内容 (10-26-2015 11:12 PM):2 G) a  x% O& t. [( \8 F( O3 F
重新贴代码了。

评分

参与人数 1金钱 +6 收起 理由
Sophia + 6 给您点个赞!大米满满送上!

查看全部评分

12

主题

5

精华

249

积分

高级会员

Rank: 3Rank: 3

积分
249

最佳新人

发表于 10-26-2015 05:40 PM | 显示全部楼层
请问是leetcode上面的这道题吗?https://leetcode.com/problems/reverse-words-in-a-string/
回复 支持 反对

使用道具 举报

发表于 10-26-2015 08:40 PM | 显示全部楼层
感谢您的面经分享~~~祝您面试工作学习顺利~~~大米积分满满送上~~~
我们始终相信IT会持续改造甚至创新传统行业,我们始终全面看好咱们的CS专业!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表