zoukankan      html  css  js  c++  java
  • Valid Password

    Problem

    In 1-9 keypad one key is not working. If someone enters a password then not working key will not be entered. You have given expected password and entered password. Check that entered password is valid or not. Ex: entered 164, expected 18684 (you need to take care as when u enter18684 and 164 only both will be taken as 164 input)

    Solution


    有几种情况需要考虑下, 

    1. 没有按到过坏的键

    2. 1864, 1684.  坏的是8, 坏的键又出现一次

    2. expect有可能是186848888,要继续检查直到长度相等

     1 public static boolean validPassword(String expect, String actual) {
     2     char faultKey = ''; //initial fault key
     3     int i=0, j=0;    //two pointer for each string
     4     for(; i<actual.length() && j<expect.length(); j++) {
     5         if(actual.charAt(i) != expect.charAt(j)) {
     6             if(faultKey == '')    faultKey = expect.charAt(j);    //record fault key
     7             else if(faultKey != expect.charAt(j))    return false;    //found second fault key
     8             i--;
     9         }
    10         i++;
    11     }
    12     
    13     for(int k=0; k<expect.length() ;k++) {
    14         if(faultKey == expect.charAt(k)) return false;            
    15     }
    16     //fault key may require press many times after that
    17     while(j<expect.length() && expect.charAt(j)==faultKey)    j++;
    18     
    19     return (i==actual.length() && j==expect.length() && faultKey == '') ? true : false;
    20 }
  • 相关阅读:
    基本MVVM 和 ICommand用法举例(转)
    WPF C# 命令的运行机制
    628. Maximum Product of Three Numbers
    605. Can Place Flowers
    581. Shortest Unsorted Continuous Subarray
    152. Maximum Product Subarray
    216. Combination Sum III
    448. Find All Numbers Disappeared in an Array
    268. Missing Number
    414. Third Maximum Number
  • 原文地址:https://www.cnblogs.com/superbo/p/4111923.html
Copyright © 2011-2022 走看看