401. Binary Watches binary Watch

Source: Internet
Author: User

A Binary Watch has 4 LEDs on the top which represent the hours (0-11), and the 6 LEDs on the bottom repr Esent the minutes (0-59).

Each LED represents a zero or one and the least significant bit on the right.

For example, the above binary watch reads "3:25".

Given a non-negative integer n which represents the number of LEDs that is currently on, return all possible Tim Es the watch could represent.

Example:

Input:n = 1
Return: ["1:00", "2:00", "4:00", "8:00", "0:01", "0:02", "0:04", "0:08", "0:16", "0:32")

Note:

    • The order of output does not matter.
    • The hour must not contain a leading zero, for example "01:00" are not valid and it should be "1:00".
    • The minute must be consist of both digits and may contain a leading zero, for example "10:2" are not valid, it should be "10 : 02 ".

The number on the binary watch has one feature: After converting to binary, only 1 digits are 1 For example: 2=10 4=100
8=1000
This feature can be used to solve problems
  
 
  1. static public List<string> ReadBinaryWatch(int num) {
  2. List<string> list = new List<string>();
  3. string s = "";
  4. for (int i = 0; i < 12; i++) {
  5. for ( int J = 0 J < 60 ; J ++) {
  6. if ( bitcount ( I ) + Span class= "Typ" >bitcount ( j Span class= "PLN" > == num ) {
  7. list.Add(i.ToString() + ":" + NumberToString(j));
  8. }
  9. }
  10. }
  11. return list;
  12. }
  13. static public int BitCount(int number) {
  14. int sum = 0;
  15. while (number > 0) {
  16. if ((number & 1) == 1) {
  17. sum++;
  18. }
  19. number >>= 1;
  20. }
  21. return sum;
  22. }
  23. static public string NumberToString(int number) {
  24. string s = number.ToString();
  25. return s.PadLeft(2, ‘0‘);
  26. }



From for notes (Wiz)

401. Binary Watches binary Watch

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.