fork(2) download
  1. # To change this license header, choose License Headers in Project Properties.
  2. # To change this template file, choose Tools | Templates
  3. # and open the template in the editor.
  4.  
  5. def CheckDotAndAt(stringIN):
  6. length = len(str(stringIN))
  7. for i in range(length):
  8. if (i > 0) & (i + 1 < length):
  9. if ((stringIN[i] == '@') | (stringIN[i] == '.')) & ((stringIN[i + 1] == '@') | (stringIN[i-1] == '@') | (stringIN[i + 1] == '.') | (stringIN[i-1] == '.')):
  10. return False
  11. elif (stringIN[i] == '@') | (stringIN[i] == '.'):
  12. return False
  13. return True
  14.  
  15. def CheckSpelling(stringIN):
  16. for i in range(len(str(stringIN))):
  17. value = ord(stringIN[i])
  18. if ((ord('a') <= value <= ord('z')) | (ord('A') <= value <= ord('Z')) | (ord('0') <= value <= ord('9')) | (value == ord('@')) | (value == ord('_')) | (value == ord('.'))) == False:
  19. return False
  20. return True
  21.  
  22. def CheckLastThreeChar(stringIN):
  23. max = len(str(stringIN))
  24. start = max - 4
  25. count = 0
  26. startCounting = False
  27. for i in range(start, max):
  28. if(startCounting == True):
  29. if(stringIN[i] != '.'):
  30. count += 1
  31. else:
  32. return False
  33. elif(stringIN[i] == '.'):
  34. startCounting = True
  35. count = 0
  36. if(1 < count < 4):
  37. return True
  38. return False
  39.  
  40. def CheckSpellingOfLastThreeChar(stringIN):
  41. max = len(str(stringIN))
  42. start = max - 3
  43. for i in range(start, max):
  44. value = ord(stringIN[i])
  45. if((ord('a') <= value <= ord('z')) | (ord('A') <= value <= ord('Z')) | (value == ord('.'))) == False:
  46. return False
  47. return True
  48.  
  49. def MonkeyCounter(stringIN):
  50. count = 0
  51. for i in range(len(stringIN)):
  52. if stringIN[i] == '@':
  53. count += 1
  54. return count
  55.  
  56. def FirstWordSize(stringIN):
  57. count = 0
  58. for i in range(len(stringIN)):
  59. if (stringIN[i] == '@'):
  60. return count
  61. count += 1
  62. return count
  63.  
  64. minLen = 4
  65. n = int(raw_input())
  66. for i in range(n):
  67. stringIN = str(raw_input())
  68. strLen = len(stringIN)
  69. if(strLen <= 4):
  70. print 'Nie'
  71. elif(FirstWordSize(stringIN) <= 20) & (CheckDotAndAt(stringIN) == True) & (CheckLastThreeChar(stringIN) == True) & (CheckSpelling(stringIN) == True) & (MonkeyCounter(stringIN) == 1) & (CheckSpellingOfLastThreeChar(stringIN) == True):
  72. print 'Tak'
  73. #print 'FWS {0} CDAT {1} CLTC {2} CS {3} MK {4} CSOLTC {5}'.format(FirstWordSize(stringIN), CheckDotAndAt(stringIN), CheckLastThreeChar(stringIN), CheckSpelling(stringIN), MonkeyCounter(stringIN), CheckSpellingOfLastThreeChar(stringIN))
  74. else:
  75. print 'Nie'
  76. #print 'FWS {0} CDAT {1} CLTC {2} CS {3} MK {4} CSOLTC {5}'.format(FirstWordSize(stringIN), CheckDotAndAt(stringIN), CheckLastThreeChar(stringIN), CheckSpelling(stringIN), MonkeyCounter(stringIN), CheckSpellingOfLastThreeChar(stringIN))
  77.  
Success #stdin #stdout 0.02s 6888KB
stdin
1
_@_.__
stdout
Nie