《内蒙古自治区第十三届大学生程序设计竞赛试题_H 公孙玉龙》
这个题有点小坑,最坑的地方就是 输入的b 变量 有可能 是 负数 ! 负数 ! 负数! 对 ,你没有看错,就是负数,坑死我了,
一直都是 content.charAt(0) 判断是不是 数字 如果不是数据就是负数,但是!!!! -号 也是数字啊,然后就一直卡在这里,剩下的思路就简单了
问题 H: 公孙玉龙
题目描述
现在有若干个赋值语句,每个赋值语句由a和b组成。变量名仅由小写和大写字母组成,已知a是一个变量名。整数对象为长度不超过100的整数。如果b是一个整数对象,那么表示bb整数对象被a所引用。如果b是一个变量名,那么表示a引用b所引用的整数对象,并且保证b变最在之前已被赋值。
如果一个数对象没有被任何一个变量所可用,则该整数对象被系统回收。如果两个整数对象的值相同,则它们是同一个整数对象。请你输出最终有多少个整数对象没有被回收。
输入格式
输出格式
输入样例 复制
2
3
TNT 2
SNS 3
BNB 3
5
T 2
N 2
T N
S 3
B 3
输出样例 复制
2
2
分类标签
思路:
使用一个Map<String ,String> 用来描述 变量之间的赋值关系
1.首先判断 b 是一个数字 还是一个字符串
1.1 如果是数字 map.put(a,b)
1.2 如果是一个变量 map.put(a,map.get(b))
2.然后遍历 将map 中的数据循环加入 set中 ,使用set 自动去重复。
最后上Java 代码实现
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Scanner;
import java.util.Set; public class Main { public static boolean isNumber(String content)
{
for(int i=0; i<content.length(); i++)
{
if( content.charAt(i) == '-' && i==0 )
{
continue;
}
else if( content.charAt(i)>'9' || content.charAt(i)< '0' )
{
return false;
}
}
return true;
}
public static void main(String[] args) {
Scanner cin = new Scanner (System.in);
Map<String, String> map = new HashMap<>();
Set<String> set = new HashSet<>(); int t = cin.nextInt();
for(int count = 0;count<t;count++){
map.clear();
set.clear();
int n = cin.nextInt();
for(int i = 0;i<n;i++){
String a = cin.next();
String b = cin.next(); if(isNumber(b)){
map.put(a,b);
}else{
map.put(a,map.get(b));
}
} for (String key :map.keySet()) {
set.add(map.get(key));
} System.out.println(set.size());
} } }
《内蒙古自治区第十三届大学生程序设计竞赛试题_H 公孙玉龙》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- redis常用的命令总结
redis常用的命令大全 1.基于内存的key-value数据库 2.基于c语言编写的,可以支持多种语言的api //set每秒11万次,取get 81000次 3.支持数据持久化 4.value可以 ...
- 【Solution】API测试工具,访问方式
1. post的时候,@requestBody 用 json的传递方式
- Jackson流式API
public class JacksonTester { public static void main(String args[]){ JacksonTester tester = new ...
- 微信小程序 下拉加载
在 Page 中定义 onPullDownRefresh 处理函数,监听该页面用户下拉刷新事件. 例: Page({ onPullDownRefresh: function(){ wx.stopPul ...
- CentOS安装PHP7.*
安装 如之前安装过PHP,则先卸载 $ yum -y remove php* 由于linux的yum源不存在php7.x,所以我们要更改yum源 $ rpm -Uvh https://dl.fedor ...
- 在CentOS上安装Python3的三种方法
Centos7默认自带了Python2.7版本,但是因为项目需要使用Python3.x你可以按照此文的三个方法进行安装. 注:本文示例安装版本为Python3.5, 一.Python源代码编译安装 安 ...
- intellij idea 官方帮助文档翻译(一)安装
安装需求: 硬件需求: 最低2GB内存,推荐4GB内存 最少要有1.5GB的硬盘空间,以及1GB空间用于缓存 最低1024*768的分辨率 软件需求: intellij idea中包含了jre 1.8 ...
- A Boring Question (打表)
题意:由m个0到n组合的数的相邻两项的组合数的乘积. 思路:好好打表!!!找规律!!! #include<bits/stdc++.h> using namespace std; typed ...
- Linux机器重启情况查询
在实际开发过程中,有时可能发现有一些服务器的进程挂了,查询相关错误日志也没有头绪.此时需要考虑是否是由于机器重启导致的错误 使用命令last reboot来查看是否机器自动重启 导致服务器重启的原因有 ...
- SlidingMenu第一篇 --- 导入SlidingMenu库
1. 下载地址:https://github.com/jfeinstein10/SlidingMenu 2. 找到下载好的SlidingMeun的library目录 3. 导入库(将上述地址复制到 ...