I did some competitive programming during my undergrad and my team placed well at a regional level in the Middle East, so I know my way around common algorithms and DS problems. I need to do a lot of practice though, since it's been quite some time.
Regarding summer internships, I have been applying to quite a few and the response rate has been quite low. I did interview with Google last week but wasn't able to get through the first round unfortunately. I think I need some more interview practice.
Yes, I plan on taking a leave of absence instead of fully withdrawing. But again, I want to be sure I can make it before committing.
Silicon Valley companies do like hashing people on algorithms, so brush them up for interviews, but they aren't used in day to day development.
Also, ask yourself, do you enjoy programming? All the parts, working inside an editor, syntax, structure, getting all the code to compile properly, running and debugging errors etc... all of it..
Yes you can get hired. Do some leetcode.com problems.. as you are working on them ask yourself if you enjoy doing those.. that's how you'll get a job at most big software development companies.