当前位置:网站首页>854. 相似度为 K 的字符串 BFS
854. 相似度为 K 的字符串 BFS
2022-07-05 21:30:00 【钰娘娘】
854. 相似度为 K 的字符串
字符串
s1和s2是k相似 的(对于某些非负整数k),如果我们可以交换s1中两个字母的位置正好k次,使结果字符串等于s2。给定两个字谜游戏
s1和s2,返回s1和s2与k相似 的最小k。示例 1:
输入:s1 = "ab", s2 = "ba" 输出:1示例 2:
输入:s1 = "abc", s2 = "bca" 输出:2提示:
1 <= s1.length <= 20s2.length == s1.lengths1和s2只包含集合{'a', 'b', 'c', 'd', 'e', 'f'}中的小写字母s2是s1的一个字谜
做题结果
失败,dfs一直超时,头疼
方法:BFS
1. 起点步数为0,化解为求a变成b的最少步数问题
2. 每次用其中某个相同字符进行填写,挪动到对应位置
3. 找到了直接返回
class Solution {
public int kSimilarity(String s1, String s2) {
Queue<String> queue = new LinkedList<>();
Map<String,Integer> distances = new HashMap<>();
distances.put(s1,0);
queue.offer(s1);
while (!queue.isEmpty()){
String str = queue.poll();
int nextStep = distances.get(str)+1;
for(String next:getNext(str,s2)){
if(next.equals(s2)) return nextStep;
if(!distances.containsKey(next)){
distances.put(next,nextStep);
queue.offer(next);
}
}
}
return 0;
}
private List<String> getNext(String s,String hope){
List<String> ans = new ArrayList<>();
char[] cs1 = s.toCharArray();
char[] cs2 = hope.toCharArray();
int n = cs1.length;
int i = 0;
while (i<n&&cs1[i]==cs2[i]) ++i;
for(int j = i+1; j < n; j++){
if(cs1[j]!=cs2[j]&&cs1[j]==cs2[i]){
swap(cs1,i,j);
ans.add(new String(cs1));
swap(cs1,i,j);
}
}
return ans;
}
private void swap(char[] cs, int i, int j){
char temp = cs[i];
cs[i] = cs[j];
cs[j] = temp;
}
}边栏推荐
- MySQL deep paging optimization with tens of millions of data, and online failure is rejected!
- Traps in the explode function in PHP
- leetcode:1755. Sum of subsequences closest to the target value
- 【案例】元素的显示与隐藏的运用--元素遮罩
- PostGIS installation geographic information extension
- Talk about my fate with some programming languages
- Enclosed please find. Net Maui's latest learning resources
- Utils/index TS tool function
- postgres 建立连接并删除记录
- Test of incombustibility of cement adhesives BS 476-4
猜你喜欢

Pytoch practice -- MNIST dataset handwritten digit recognition

Pytorch实战——MNIST数据集手写数字识别

Golang(1)|从环境准备到快速上手

Evolution of zhenai microservice underlying framework from open source component encapsulation to self-development

冯唐“春风十里不如你”数字藏品,7月8日登录希壤!

Five layer network protocol

Zhang Lijun: la pénétration de l’incertitude dépend de quatre « invariants»

Enclosed please find. Net Maui's latest learning resources

PVC 塑料片BS 476-6 火焰传播性能测定

leetcode:1755. Sum of subsequences closest to the target value
随机推荐
Problems encountered in office--
面试官:并发编程实战会吗?(线程控制操作详解)
kingbaseES V8R3数据安全案例之---审计记录清除案例
Making global exception handling classes with aspect
100 cases of shell programming
MySQL deep paging optimization with tens of millions of data, and online failure is rejected!
How to send samples when applying for BS 476-7 display? Is it the same as the display??
Feng Tang's "spring breeze is not as good as you" digital collection, logged into xirang on July 8!
ODPs next map / reduce preparation
MMAP
WPF gets the control in the datagridtemplatecolumn of the specified row and column in the DataGrid
Comprehensive optimization of event R & D workflow | Erda version 2.2 comes as "7"
Simple interest mode - lazy type
Chapter 05_ Storage engine
Generics of TS
Teach yourself to train pytorch model to Caffe (2)
力扣------经营摩天轮的最大利润
Dictionary tree simple introductory question (actually blue question?)
CLion配置visual studio(msvc)和JOM多核编译
Sorting out the problems encountered in MySQL built by pycharm connecting virtual machines