Suggestions
Dmitri Mikhailov
Architect & Developer
Dmitri Mikhailov is a technology expert with a Master's degree in Computer Science from the Belarusian State University of Informatics and Radioelectronics.
With over 20 years of experience, Dmitri has a proven track record of driving growth and increasing business value for public and private companies, from startups to Fortune 50 companies.
His expertise spans strategic initiatives, software & database design and development, business intelligence, marketing, business development, data science, operations, contract negotiations, security, payment processing, and system scalability.
As a hands-on technical leader, Dmitri bridges the gap between business strategy and technology, eliminating the need for external consultants or large staff.
He is a team player, mentor, and problem solver, capable of working at all organizational levels to achieve desired results and implement strategic visions.
His previous roles include Enterprise Data Architect at The Knot Worldwide, Data Architecture/Engineering/Security/Compliance at UTC Aerospace Systems, Database Engineering/Architecture Consultant at Sailthru, Software and Data Architect at CRONOTRON, Principal Database Architect/Director at THE LADDERS, and Senior Software/Database Engineer at GLOBAL COMPUTING SERVICES CORP.
Highlights
Your next interview question (yes, coding): "Generate all permutations of a binary value by a pattern"
Input: 1??0?101
Output: 10000101 11000101 10100101 11100101 10001101 11001101 10101101 11101101
Reference: https://lnkd.in/emMGUD4r
Good god! All the answers were not good enough. It took me a second to see a better way, and then, minutes later I had it in Python. The code is below.
To run on Mac: copy the code to clipboard, then, in the shell: python <<< $(pbpaste)
THE CODE BEGIN
#!/usr/bin/env python3
Generate all binary strings from given pattern
Complexity:
# time: O(2^(n+1)) # space: O(n) <-- Instant win
Dmitri Mikhailov, New York, 2024
pat = '1??0?101' res = list(pat) ind = [i for i in range(len(pat) - 1, -1, -1) if pat[i] == '?'] cnt = len(ind) pre = (1 << cnt) - 1 for msk in range(1 << cnt): for pos in range((msk ^ pre).bit_length()): res[ind[pos]] = chr(48 + (msk & 1 << pos > 0)) pre = msk print(''.join(res))
THE CODE END
I'm not new to LinkedIn, but I have a question for my network:
Where can I clearly state that I would like to be hired directly?
I'm looking to reduce noise and to eliminate the middleman, so I want to make it clear that staffing agencies, IT consulting companies are not welcome to contact me.
Any suggestions?
