給定兩個長度相等的,由小寫字母組成的字串s1和s2,定義s1和s2的距離為兩個字串有多少個位置上的字母不相等。
現在牛牛可以選定兩個字母x1和x2,將s1中的所有字母x1均替換成x2。(x1和x2可以相同)
牛牛希望知道執行一次替換之後,兩個字串的距離最少為多少。
示例1複製
"aaa","bbb"複製
0
牛牛可以將s1中的字元'a'全部替換成字元'b',這樣s1就變成了"bbb",那麼s1和s2的距離就是0示例2
複製
"aabb","cdef"複製
3
一種可行的方案是將s1中的字元'a'全部替換成字元'c',那麼s1變成了"ccbb",和s2的距離是3s1.size() =s2.size()s1.size()=s2.size()
1 \leq s1.size() \leq 5 * 10^41≤s1.size()≤5∗104
s1和s2中的字母均為小寫字母
因為輸入的字串為26個小寫字母組成,主要步驟是將s1中的字元a全部換成b然後求s1與s2的"字串距離",可以維護乙個二維陣列,map[i][j],其中i代表s1中的字元,j代表s2中的字元,遍歷map求出由i替換成j後獲取的最大價值
public int getmindistance (string s1, string s2)
int minn=integer.max_value;
for(int i=0;i<26;i++)
}return minn;
}
牛客網 計算字串的距離
levenshtein 距離,又稱編輯距離,指的是兩個字串之間,由乙個轉換成另乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字元。編輯距離的演算法是首先由 科學家levenshtein提出的,故又叫levenshtein distance。ex 字串...
Android面試題(牛客)
1.1.管理乙個平面 這個平面是乙個特殊的記憶體塊 它可以和 android 檢視系統混合 2.管理乙個egl 顯示 它能夠讓 opengl 渲染到乙個平面 3.接受乙個使用者提供的實際顯示的renderer 物件 4.使用乙個專用線程去渲染從而和ui 執行緒解耦 5.支援on demand 和連續...
牛客網(面試題)
每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。hf作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的 首先,讓小朋友們圍成乙個大圈。然後,他隨機指定乙個數m,讓編號為0的小朋友開始報數。每次喊到m 1的那個小朋友要出列唱首歌,然後可以在禮品箱中任意的挑選禮...