매주 Mohammad S. Anwar는 우리 모두가 두 가지 주간 작업에 대한 해결책을 생각해 낼 수 있는 주간 챌린지를 보냅니다. 내 솔루션은 먼저 Python으로 작성된 다음 Perl로 변환되었습니다. 이는 우리 모두가 코딩을 연습할 수 있는 좋은 방법입니다.
도전, 나의 솔루션
3자리 이상의 양의 정수 $int가 주어졌습니다.
주어진 정수에서 적합한 정수를 반환하거나 아무것도 찾지 못한 경우 -1을 반환하는 스크립트를 작성하세요. 좋은 정수는 정확히 3개의 연속 숫자가 일치하는 것입니다.
원래는 이 작업을 정규식 패턴으로 수행할 수 있다고 생각했는데, 제 생각이 틀린 것 같습니다. 다른 TPW 멤버들도 그런 식으로 할 수 있는지 살펴봐야겠습니다.
이 작업에는 0에서 문자열 길이보다 작은 3까지 반복하는 변수 pos가 있습니다. 그런 다음 네 가지 사항을 확인합니다.
이것이 모두 사실이라면 그 세 자리 숫자를 반환합니다. '000'은 실제 정수가 아니기 때문에 Python에서는 문자열로 수행됩니다. 반복자가 소진되면 -1을 반환합니다.
def good_integer(n: int) -> str: value = str(n) length = len(value) for pos in range(length-2): if ( value[pos] == value[pos+1] and value[pos] == value[pos+2] and (pos == 0 or value[pos] != value[pos-1]) and (pos + 3 == length or value[pos] != value[pos+3]) ): return value[pos:pos+3] return '-1'
$ ./ch-1.py 12344456 444 $ ./ch-1.py 1233334 -1 $ ./ch-1.py 10020003 000
사용자가 입력한 대로 알파벳 문자열 $str이 제공됩니다.
사용자가 주어진 문자열을 입력하기 위해 키를 변경해야 했던 횟수를 찾는 스크립트를 작성하세요. 키 변경은 마지막으로 사용한 키와 다른 키를 사용하는 것으로 정의됩니다. "shift" 및 "caps lock" 키는 계산되지 않습니다.
재밌는 사실. 몇 년에 한 번씩 새 키보드를 구입하면 Caps Lock 키를 뜯어내는 데 시간이 얼마나 걸리는지 알 수 있습니다. 대부분의 키보드는 하루도 못 버틴다!
이 작업에서는 문자열을 소문자로 변환하고 두 개의 변수로 시작합니다. current_key 값은 현재 누른 키이며 입력의 첫 번째 문자로 초기화됩니다. 변경사항 변수는 내가 수행한 주요 변경사항 수이며 0부터 시작합니다.
그런 다음 입력 문자열의 각 문자를 반복합니다. 해당 문자가 current_key와 다른 경우 새 문자로 업데이트하고 1씩 변경합니다.
def key_changes(s: str) -> int: s = s.lower() current_key = s[0] changes = 0 for letter in s: if letter != current_key: current_key = letter changes += 1 return changes
$ ./ch-2.py pPeERrLl 3 $ ./ch-2.py rRr 0 $ ./ch-2.py GoO 1
위 내용은 좋은 키의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!