找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

[Indeed] Indeed 电面

[复制链接]

10

主题

3

精华

340

积分

高级会员

Rank: 3Rank: 3

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

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

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

x
一个三姐, 一道老题
+ L4 S0 C6 Y7 Q先写reverse string,  转换成char arry 再翻转5 V) R5 f: C+ b& t( r! \' x
第二部 string 里包含> 这种entity 要求翻转是这个作为一个整体
0 f9 ^8 T( B" Z( e$ xex: >abc>  c4 j, `+ ?. M5 Z0 y! L# m
我是先把整体翻转,然后用 hashmap存每一个;&对的位置,然后把这些entity再翻转,然后三姐也满意,然后让我说说每一步的复杂度和整体复杂度。
, @- N7 I' k- M% P6 Q2 _3 h[code]public class Solution {
! s7 E" O9 M' b/ }& N# _    public String reverse(String str){
) F, h, O2 z  |% q        if (str == null || str.length() == 0) {! {& ?8 g# l! a6 W% d: f+ G- I
            return "";. a- z) R! V: c- U+ @
        }$ @1 M$ Y/ E3 ]1 |9 b9 m, J
        char[] arr = str.toCharArray();# m; n+ t; p, F2 O1 u
        swap(arr, 0, arr.length - 1);* B3 ?% P- F7 }" U" W
        HashMap<Integer, Integer> map = new HashMap<>();% I/ U6 K' I* }# o0 X0 K  M
        int start = -1;% r, ^" N! U/ h- R
        for (int i = 0 ; i < arr.length; i++) {
' d* Q. g5 r! w7 B& R/ {1 e+ y            if (arr【i】 == ';') {
8 ^" ~$ M# N' ^2 L1 @9 x- S/ O7 k                start = i;4 C: G, _7 j; b  L- n
            }0 o0 ~: @6 i0 \+ ^
            if (arr【i】 == '&' && start != -1 ){
; x  I6 Q& D, M6 H3 J  y. }- b9 ?                map.put(start, i);7 A) \) P( P6 p
                start = -1;
% o" n! z4 N$ @' D4 o            }
2 G/ s7 t2 D- F' y4 |        }# `7 z& o7 p( g& X
        for (int key: map.keySet()) {3 A& P' A: o2 \5 H0 p4 r" u9 U, }; d
            swap(arr, key, map.get(key));
; ]9 q) E4 K( j        }/ c3 G0 {$ w1 G$ y
        return new String(arr);6 `$ z' Y6 _, z
    }5 z( A( W# v9 @" ~( s7 F7 t  L

7 i( L- V+ X5 r+ g( v! m8 ~    public void swap(char[] nums, int beg, int end){
' Q* x* K# ^7 D+ D0 m9 k' E* |1 z* G        while (beg < end) {
) B. e9 X6 r4 F% s& M  u            char tmp = nums[beg];9 l9 @* @. j& {* h8 d& u- Z
            nums[beg] = nums[end];
9 a3 r$ I' v' k" [            nums[end] = tmp;
4 o. r2 K6 z1 z0 g7 x            beg++;, w: m6 M7 j$ j3 J7 }
            end--;+ v+ H) c  W3 ]1 }1 e3 ~4 e) ]
        }
: W: V2 [5 C1 E$ ]* u    }
0 z- k1 X5 [; {# J& }. f6 R* e% e& x; b4 x6 d; a* `- N" S. a
    public static void main(String[] args) {, ~+ {4 {5 Q3 {% @# |( t* j
        Solution s = new Solution();. @1 A" s6 u" F8 u8 M" r
        System.out.println(s.reverse("123
% V! n3 i  ^  F$ ^  V+ }4 P" s6 {! K0 F8 f3 u- z
补充内容 (10-26-2015 11:12 PM):8 [2 y! q/ R$ @5 K: Q8 c4 v
重新贴代码了。

评分

参与人数 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专业!
回复 支持 反对

使用道具 举报

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

本版积分规则

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