<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def resolve_requirement_strings(self, interpreter, requirement_strings):
 """Resolve a list of pip-style requirement strings."""

    requirement_strings = sorted(requirement_strings)
    if len(requirement_strings) == 0:
      req_strings_id = 'no_requirements'
    elif len(requirement_strings) == 1:
      req_strings_id = requirement_strings[0]
    else:
      req_strings_id = hash_all(requirement_strings)

    path = os.path.realpath(os.path.join(self.workdir, str(interpreter.identity), req_strings_id))
    if not os.path.isdir(path):
      reqs = [PythonRequirement(req_str) for req_str in requirement_strings]
      with safe_concurrent_creation(path) as safe_path:
        pex_builder = PexBuilderWrapper.Factory.create(
          builder=PEXBuilder(path=safe_path, interpreter=interpreter, copy=True),
          log=self.context.log)
        pex_builder.add_resolved_requirements(reqs)
        pex_builder.freeze()
    return PEX(path, interpreter=interpreter)