牛客
contents2.小易喜歡的單詞
題目圓的半徑平方為s,求座標系裡在這個圓周上面的整數座標點有幾個
輸入253輸出12
0
思路和解答
math.sqrt(4)
2.0
type(math.sqrt(4))
float
math.sqrt(4)==int(math.sqrt(4))
true
注意range的語法
range(start, stop[, step])
引數說明:
start: 計數從 start 開始。預設是從 0 開始。例如range(5)等價於range(0, 5);
stop: 計數到 stop 結束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5
step:步長,預設為1。例如:range(0, 5) 等價於 range(0, 5, 1)
import math
s=25
num=0
for i in range(1,int(math.sqrt(s))+1):#由於range的上述語法限制,上限應該加1
if math.sqrt(s-i*i)==int(math.sqrt(s-i*i)):
# print(i)
num+=1
print(4*num)
12
關於python的標準輸入輸出
import sys
sys.stdin.readline().strip()#這一句的意思是讀取鍵盤的輸入,然後去除最後的換行符\n
#raw_input()可以達到跟上邊一句相同的效果
''
由於需要讀取多個輸入,所以上面的**還需要進行小小的改動,最終解答如下
import math
while
true:#不斷地讀入,直到讀到結束符eof(end of file)
try:
s = int(raw_input().strip())
num=0
for i in range(1,int(math.sqrt(s))+1):#由於range的上述語法限制,上限應該加1
if math.sqrt(s-i*i)==int(math.sqrt(s-i*i)):
# print(i)
num+=1
print(4*num)
except eoferror:#通過try...except達到了乙個迴圈停止的效果(為什麼不可以通過乙個迴圈終止條件來寫呢)
break
題目小易喜歡的單詞具有以下特性:
單詞每個字母都是大寫字母
單詞沒有連續相等的字母
單詞沒有形如「xyxy」(這裡的x,y指的都是字母,並且可以相同)這樣的子串行,子串行可能不連續。
例如:思路和解答
檢測是不是符合他不喜歡的標準,滿足任意乙個就是不喜歡,都不滿足就是喜歡
那麼如何檢測每一項標準呢?
遍歷的同時,比較上乙個字母和當前字母是否相同
第三個使用find方法,參考python find()方法
str -- 指定檢索的字串
beg -- 開始索引,預設為0。
end -- 結束索引,預設為字串的長度。
看了一下官方的解答,就是暴力的四重迴圈...但是既然我用的是python,還是應該盡量利用python的一些方法去簡化一下
#include
#include
using
namespace
std;
string
judge
(string word)
; int n = (int)word.size();
for (int i = 1; i < n; i++)
for (int i = 0; i < n; i++)}}
}return res[1];
}int
main
()
#嘗試寫一下第三個條件的判斷
class
getoutofloop
(exception):
pass
try:#這裡的try...except是為了找到條件,列印結果之後,直接跳出兩層迴圈
s='thbtah'
for i in range(len(s)):
if s.find(s[i],i+1)!=-1:
index=s.find(s[i],i+1)
print('i',i)
print('找到的序號',index)
for j in range(i+1,index):
if s.find(s[j],index+1)!=-1:
print("dislikes")
raise getoutofloop()
except:
pass
#看上去簡單一些,但是感覺跟迴圈其實也是一樣的,因為find()本身應該也是乙個個去遍歷的吧...
i 0
找到的序號 3
dislikes
python跳出兩層迴圈
最後通過的**
# -*- coding: utf-8 -*
class
getoutofloop
(exception):
#下面檢測不喜歡的條件,一旦滿足,直接輸出dislikes,否則丟擲異常,並且輸出likes
pass
try:
s=raw_input()#讀取輸入的字串,s指向它
if s.upper()!=s:#如果不全是大寫字母,就是dislike
raise getoutofloop()
for k in range(len(s)-1):#如果有兩個連續字母相等,就是dislike
if s[k]==s[k+1]:
raise getoutofloop()
for i in range(len(s)):#如果滿足第三個條件,就是dislike
if s.find(s[i],i+1)!=-1:
index=s.find(s[i],i+1)
#print('i',i)
#print('找到的序號',index)
for j in range(i+1,index):
if s.find(s[j],index+1)!=-1:
#print("dislikes")
raise getoutofloop()
print('likes')#如果經過了之前的幾次檢測都沒有丟擲異常,就是likes
except:
print('dislikes')
MySQL刷題 牛客網 Day2
今天繼續刷題!獲取所有員工當前的manager 獲取所有員工當前的manager,如果當前的manager是自己的話結果不顯示,當前表示to date 9999 01 01 結果第一列給出當前員工的emp no,第二列給出其manager對應的manager no。create table dept...
Leetcode刷題之旅(Day2)
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...
演算法刷題 筆記(Day2)
題目描述 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。解題思路 一 1.回文數的先決條件x 0.2.利用序列型別資料的性質,先轉字串再進行切片翻轉str 1 題解 class solution def ispalindrome self,x int boo...