梦断fb

本来去年就应该电面,当时谷歌刚跪,觉得[刷题]不够,就推到了1.20,很简单的题,sort colors, decode ways. 今天二面,我在图书馆地下室,刚开始信号不好,他打我电话打不通,赶紧搬到楼上。第一题,regular matching, 用dp秒了,他好像不是很满意,问我有没有其他的方法,我一时也想不出来,就说这是我目前想到的最好的方法,稳了复杂度。第二题,也是面经原题,有一个class mutex, lock(), unlock(),让你去实现,读写锁的四个functon,我背住了这道题,哈哈,论坛里那个面经总结里有这个,我就打算把各位大哥的给写上去,写到while 循环的时候,他说不行,不能用while循环,我就不会了,接下来就很捉急了。一直到上时间结束,也没写出来。os学得不好。我用的java,哈哈,目测要悲剧了,哈哈,哪位童鞋,能给一个正确的解法啊

我觉得regular expression matching作为电面的第一题很难呀,然后还要再问一道锁的。fb对new grad的bar这么高。。。

怎么用while做?LZ发一下解法看看。。

class ReadWriteMutex {
        int reader = 0;
        Mutex mutex = new Mutex();
        Mutex readerCountMutex = new Mutex();

        void readLock() {
                readerCountMutex.lock();
                if (reader == 0) {
                        mutex.lock();
                }
                reader++;
                readerCountMutex.unlock();
        }

        void readUnlock() {
                readerCountMutex.lock();
                reader--;
                if (reader == 0) {
                        mutex.unlock();
                }
                readerCountMutex.unlock();
        }

        void writeLock () {
                mutex.lock();
        }

        void writeUnlock() {
                mutex.unlock();
        }
}

谢谢分享。
也是觉得FB电面bar好高,虽然没有写出他想要的,希望楼主进入下一轮。

哈哈,你这个好像有点问题啊。我再想想